GetServerHardware.vbs
Mit dem Skript GetServerHardware.vbs können Hardware 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 WMI Properties
Hardware-Hersteller, -Model, RAM, CPU, OS sowie die IP-Adresse für den jeweiligen Server.
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 & "Manufacturer" & sDelim & "Model" & sDelim & "RAMByte" & sDelim & "CPUs" & sDelim & "OS" & sDelim & "IP" & sDelim & "AD-Description" Do While oInFile.AtEndOfStream <> True strServer = Trim(oInFile.ReadLine) If Not strServer = "" and InStr(strServer,"#") <> 1 Then Call GetCompInfo(strServer) End If Loop oInFile.Close oOutFile.Close oLogFile.Close wscript.quit '******************************** '* End Main '******************************** '******************************** '* Sub GetCompInfo() '* Purpose: Retrieve Server Information '* Input: Servername '* Output: '******************************** Private Sub GetCompInfo(ByVal strServer) On ERROR Resume Next Dim strHw, strOS, strDesc strDesc="" strHw="" strDesc = Replace(GetADdescription(strDomainDN, strServer),";",",") 'for sDelim = ";" If Not IsAlive(strServer) Then PrintOut strServer & sDelim & "" & sDelim & "" & sDelim & "" & sDelim & "" & sDelim & strIP & sDelim Exit Sub End If Err.Clear 'clear possible ERRORs Set wmi = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strServer & "\root\cimv2") If Err.Number Then PrintLog Err.Number, strServer & ": ERROR WMI at GetObject(winmgmts:{impersonationLevel=impersonate}!\\" & strServer & "\root\cimv2)" strHw = sDelim & "" & sDelim & "" & sDelim & "" & sDelim & "" Else strHw = GetHW(strServer) strOS = GetOS(strServer) End If PrintOut strServer & sDelim & strHw & sDelim & strOS & sDelim & strIP & sDelim & strDesc Set wmi = nothing End Sub '**************************** '* Function GetHW() '* Purpose: Get HW from WMI '* Input: strServer '******************************** Private Function GetHW(ByVal strServer) On ERROR Resume Next Dim colItems, oItem, strOut Err.clear Set colItems = wmi.ExecQuery("Select Manufacturer,Model,TotalPhysicalMemory,NumberOfProcessors from Win32_ComputerSystem",,48) For Each oItem in colItems strOut = oItem.Manufacturer & sDelim & oItem.Model & sDelim & oItem.TotalPhysicalMemory & sDelim & oItem.NumberOfProcessors wscript.echo vbTAB & strOut Next Set colItems = Nothing GetHW = strOut End Function '******************************** '* Function GetOS() '* Purpose: Get OS from WMI '* Input: strServer '******************************** Private Function GetOS(ByVal strServer) On ERROR Resume Next Dim colItems, oItem, strOut Err.clear Set colItems = wmi.ExecQuery("Select Caption,CSDVersion from Win32_OperatingSystem",,48) For Each oItem in colItems strOut = oItem.Caption & " - " & oItem.CSDVersion wscript.echo vbTAB & strOut Next Set colItems = Nothing GetOS = strOut End Function |
Download GetServerHardware.vbs
Scripting Basics
