Class CompSys Dim colItems,objItem,item Dim yr,mo,dy,tm Dim strProperty,strClass,objWMIService,SWBemLocator Public Function ConnectServer(strComputer,Username,Password) Const WbemPrivilegeSecurity=7 Const WbemAuthenticationLevelPktPrivacy=6 Const ReturnImmediately=&h10 Const ForwardOnly=&h20 Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator") SWBemlocator.Security_.ImpersonationLevel=3 SWBemlocator.Security_.AuthenticationLevel= _ WbemAuthenticationLevelPktPrivacy Set objWMIService = SWBemlocator.ConnectServer(strComputer, _ "root\CIMV2",UserName,Password) End Function Private Function GetData(strProperty,strClass) Const WbemPrivilegeSecurity=7 Const WbemAuthenticationLevelPktPrivacy=6 Const ReturnImmediately=&h10 Const ForwardOnly=&h20 strQuery="Select " & strProperty & " from " & strClass Set colItems = objWMIService.ExecQuery(strQuery,"WQL", _ ForwardOnly+ReturnImmediately) For Each objItem in colItems For Each item In objItem.Properties_ 'WScript.Echo item.name & vbTab & item.value If InStr(1,item.name,strProperty,vbBinarycompare) _ Then strReturn=item.value Next Next GetData=strReturn End Function Private Function ConvWMITime(wmiTime) yr = left(wmiTime,4) mo = mid(wmiTime,5,2) dy = mid(wmiTime,7,2) tm = mid(wmiTime,9,6) ConvWMITime = mo&"/"&dy&"/"&yr & " " & FormatDateTime(left(tm,2) & _ ":" & Mid(tm,3,2) & ":" & Right(tm,2),3) End Function Public Property Get OS OS=GetData("Caption","Win32_OperatingSystem") End Property Public Property Get Model Model=GetData("Model","win32_ComputerSystem") End Property Public Property Get Manufacturer Manufacturer=GetData("Manufacturer","win32_ComputerSystem") End Property Public Property Get TotalMemory TotalMemory=GetData("TotalPhysicalMemory","win32_ComputerSystem") End Property Public Property Get ServicePack ServicePack=GetData("CSDVersion","win32_OperatingSystem") End Property Public Property Get Uptime LastBootTime=GetData("LastBootUpTime","win32_OperatingSystem") LastBootTime=ConvWMITime(LastBootTime) dtNow=Now iHours=DateDiff("h",LastBootTime,dtNow) iMin=DateDiff("n",LastBootTime,dtNow) iSec=DateDiff("s",LastBootTime,dtNow) Uptime=Fix(iHours/24) & " days " & (iHours Mod 24) &_ " hours " & (iMin Mod 60) & " minutes " &_ (iSec Mod 60) & " seconds" End Property Public Property Get BootINI Dim objFSO,objFile Const ForReading=1 Set objFSO=CreateObject("Scripting.FileSystemObject") Set objFile=objFSO.OpenTextFile("c:\boot.ini",ForReading) BootINI=objFile.ReadAll objFile.Close End property End Class 'main script 'name of computer to check strComputer="dc01" 'alternate credentials are optional and cannot be used for the 'local system. strAdminName="MyDomain\administrator" strAdminPassword="$ecr3t" 'Demo only. Never hard code passwords. 'define object from CompSys class Set objComputer=New CompSys Call _ objComputer.ConnectServer(strComputer,strAdminName,strAdminPassword) WScript.Echo "Operating System = " & objComputer.OS &_ " (" & objComputer.ServicePack & ")" WScript.Echo "Computer = " & objComputer.Model WScript.Echo "Mfg = " & objComputer.Manufacturer WScript.Echo "Total Memory = " & objComputer.TotalMemory & " bytes" WScript.Echo "Uptime = " & objComputer.Uptime WScript.Echo vbCr WScript.Echo "Boot.ini:" Wscript.Echo objComputer.BootINI