Installierte Software auslesen

Immer wieder passiert es und der Chef kommt zum Administrator und möchte wissen welche Software auf allen Rechnern installiert ist. Grund kann eine Lizenzzählung oder Kontrolle von unerwünschter Software sein. Natürlich gibt es tolle Software wie SCCM die das können, aber meistens Geld kosten.

Dabei gibt es verschiedene Ansätze für die Umsetzung:

wmic /output:software.htm product get Name, Version /format:htable

Das erstellt eine html Datei mit einer Liste der installierten Software. Was man auch als txt Datei Ausgeben kann:

wmic /output:C:\Software.txt product get Name, Version

Ich denke ein kleines vb Script arbeitet hier schneller und lässt sich super in ein Script während der Anmeldung verstecken:

Download des vb Scripts

Software.zip

strHost = „.“
Const HKLM = &H80000002
Set objReg = GetObject(„winmgmts://“ & strHost & _
„/root/default:StdRegProv“)
Const strBaseKey = _
„Software\Microsoft\Windows\CurrentVersion\Uninstall\“
objReg.EnumKey HKLM,strBaseKey,arrSubKeys

For Each strSubKey In arrSubKeys
intRet = objReg.GetStringValue(HKLM,strBaseKey & strSubKey,_
„DisplayName“,strValue)
If intRet <> 0 Then
intRet = objReg.GetStringValue(HKLM,strBaseKey & strSubKey,_
„QuietDisplayName“,strValue)
End If
If (strValue <> „“) and (intRet = 0) Then
set fs = CreateObject(„Scripting.FileSystemObject“)
logfile = „c:\Software.txt“
set handle = fs.OpenTextFile(logfile,8,true)
softwareName = strValue
handle.WriteLine softwareName
handle.close
End If
Next