GetServerSoftware.vbs
Mit dem Skript GetServerSoftware.vbs können Software Informationen von Servern abgefragt werden.
Die Server, die abgefragt werden sollen, müssen als Liste in einer Inputdatei mit dem Namen server.txt bereitstehen.
Abgefragt werden die Active Directory Description für das Serverobjekt,
und die installierten Software Produkte.
Das Ergebnis der Abfragen wird zeilenweise und durch einen Delimeter getrennt ausgegeben,
um die Daten einfach in einer Excel Tabelle darstellen zu können.
Das Listing zeigt nur die relevanten Funktionen - es fehlen z.B. Routinen, wie das Erzeugen der File Handles oder IsAlive Prüfung.
|
'******************************** '* Main '******************************** VerifyHostScript() CreateFileObjects() strDomainDN = GetDomainName() PrintOut "Server" & sDelim & "Uninstall Key - installed Software" & sDelim & "AD-Description" Do While oInFile.AtEndOfStream <> True strServer = Trim(oInFile.ReadLine) If Not strServer = "" and InStr(strServer,"#") <> 1 Then Call GetSoftware(strServer) End If Loop oInFile.Close oOutFile.Close oLogFile.Close wscript.quit '******************************** '* End Main '******************************** '******************************** '* Sub GetSoftware() '* Purpose: Retrieve Server Information '* Input: Servername '* Output: '******************************** Private Sub GetSoftware(ByVal strServer) On ERROR Resume Next Dim strSW, strDesc strDesc = Replace(GetADdescription(strDomainDN, strServer),";",",") 'for sDelim = ";" If Not IsAlive(strServer) Then PrintOut strServer & sDelim & strIP & sDelim Exit Sub End If Err.Clear 'clear possible ERRORs Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strServer & "\root\default:StdRegProv") If Err.Number Then PrintLog Err.Number, strServer & ": Script ERROR at Set oReg = GetObject()" strSW = strServer & sDelim & "Script ERROR at Set oReg = GetObject()" Else strSW = GetSW(strServer) End If PrintOut strSW & sDelim & strDesc Set oReg = nothing End Sub '******************************** '* Function GetSW() '* Purpose: Get Software from Registry '* Input: strServer '******************************** Private Function GetSW(ByVal strServer) On ERROR Resume Next Dim aSubkeys, strSubkey, strAppName, strOut, iLen oReg.EnumKey HKLM, strUninstallPath, aSubkeys For Each strSubkey In aSubkeys oReg.GetStringValue HKLM, strUninstallPath & "\" & strSubkey, "DisplayName", strAppName strOut = strOut & strServer & sDelim & strSubkey & " - " & strAppName & vbCRLF Next iLen = Len(strOut)-2 strOut = Mid(strOut, 1, iLen) 'letztes vbCRLF abschneiden GetSW = strOut End Function |
Download GetServerSoftware.vbs
Scripting Basics
