1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
| '==========================================================================
' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 2007
' NAME: PCData.vbs
' AUTHOR: David Taylor
' DATE : 10/22/2008
' Modified by Hackoo on 02/09/2013
' Modification : Adding Function WriteLog
' COMMENT:
'==========================================================================
On Error Resume Next
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
arrComputers = Array(".")
Set ws = CreateObject("Wscript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
LogFile = Left(Wscript.ScriptFullName, InstrRev(Wscript.ScriptFullName, ".")) & "log"
if fso.FileExists(LogFile) Then
fso.DeleteFile LogFile
end if
For Each strComputer In arrComputers
WriteLog "====================="
WriteLog "Computer: " & strComputer
WriteLog "====================="
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_OperatingSystem",,48)
For Each objItem In colItems
WriteLog "Operating System: " & objItem.Caption & " Service Pack " & objItem.ServicePackMajorVersion
WriteLog "Version: " & objItem.Version
WriteLog "Operating System Install Date: : " & WMIDateStringToDate(objItem.InstallDate)
WriteLog "Last Boot Up Time: " & WMIDateStringToDate(objItem.LastBootUpTime)
Next
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDiskDrives = objWMIService.ExecQuery _
("Select * from Win32_PerfFormattedData_PerfDisk_LogicalDisk Where " _
& "Name <> '_Total'")
For Each objDiskDrive in colDiskDrives
WriteLog "Drive Name: " & objDiskDrive.Name
WriteLog "Free Space in MB: " & objDiskDrive.FreeMegabytes
Next
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_OperatingSystem",,48)
For Each objItem In colItems
WriteLog "Local Date Time: " & WMIDateStringToDate(objItem.LocalDateTime)
Next
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_OperatingSystem",,48)
For Each objItem In colItems
WriteLog "Free Physical Memory: " & objItem.FreePhysicalMemory
Next
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_OperatingSystem",,48)
For Each objItem In colItems
WriteLog "Free Space In Paging Files: " & objItem.FreeSpaceInPagingFiles
Next
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_OperatingSystem",,48)
For Each objItem In colItems
WriteLog "Free Virtual Memory: " & objItem.FreeVirtualMemory
Next
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colComputer = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")
For Each objComputer In colComputer
WriteLog "Logged-on user: " & objComputer.UserName
Next
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_NetworkLoginProfile",,48)
For Each objItem In colItems
WriteLog "Full Name: " & objItem.FullName
Next
Next
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_BIOS",,48)
For Each objItem In colItems
WriteLog "==================================="
WriteLog "BIOS Information"
WriteLog "==================================="
If isNull(objItem.BIOSVersion) Then
WriteLog "BIOS Version: "
Else
WriteLog "BIOS Version: " & Join(objItem.BIOSVersion, ", ")
End If
Next
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colAdapters = objWMIService.ExecQuery _
("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
n = 1
For Each objAdapter In colAdapters
WriteLog "============================="
WriteLog "Network Adapter Information " & n
WriteLog "============================="
WriteLog " Description: " & objAdapter.Description
WriteLog " MAC address: " & objAdapter.MACAddress
WriteLog " Host name: " & objAdapter.DNSHostName
If Not IsNull(objAdapter.IPAddress) Then
For i = 0 To UBound(objAdapter.IPAddress)
WriteLog " IP address: " & objAdapter.IPAddress(i)
Next
End If
If Not IsNull(objAdapter.IPSubnet) Then
For i = 0 To UBound(objAdapter.IPSubnet)
WriteLog " Subnet: " & objAdapter.IPSubnet(i)
Next
End If
If Not IsNull(objAdapter.DefaultIPGateway) Then
For i = 0 To UBound(objAdapter.DefaultIPGateway)
WriteLog " Default gateway: " & _
objAdapter.DefaultIPGateway(i)
Next
End If
WriteLog " ---"
WriteLog " DNS"
WriteLog " ---"
WriteLog " DNS servers in search order:"
If Not IsNull(objAdapter.DNSServerSearchOrder) Then
For i = 0 To UBound(objAdapter.DNSServerSearchOrder)
WriteLog " " & objAdapter.DNSServerSearchOrder(i)
Next
End If
WriteLog " DNS domain: " & objAdapter.DNSDomain
If Not IsNull(objAdapter.DNSDomainSuffixSearchOrder) Then
For i = 0 To UBound(objAdapter.DNSDomainSuffixSearchOrder)
WriteLog " DNS suffix search list: " & _
objAdapter.DNSDomainSuffixSearchOrder(i)
Next
End If
WriteLog " ----"
WriteLog " DHCP"
WriteLog " ----"
WriteLog " DHCP enabled: " & objAdapter.DHCPEnabled
WriteLog " DHCP server: " & objAdapter.DHCPServer
If Not IsNull(objAdapter.DHCPLeaseObtained) Then
utcLeaseObtained = objAdapter.DHCPLeaseObtained
strLeaseObtained = WMIDateStringToDate(utcLeaseObtained)
Else
strLeaseObtained = ""
End If
WriteLog " DHCP lease obtained: " & strLeaseObtained
If Not IsNull(objAdapter.DHCPLeaseExpires) Then
utcLeaseExpires = objAdapter.DHCPLeaseExpires
strLeaseExpires = WMIDateStringToDate(utcLeaseExpires)
Else
strLeaseExpires = ""
End If
WriteLog " DHCP lease expires: " & strLeaseExpires
WriteLog " ----"
WriteLog " WINS"
WriteLog " ----"
WriteLog " Primary WINS server: " & objAdapter.WINSPrimaryServer
WriteLog " Secondary WINS server: " & objAdapter.WINSSecondaryServer
n = n + 1
Next
ws.run LogFile
Function WMIDateStringToDate(dtmDate)
'WriteLog dtm:
WMIDateStringToDate = CDate(Mid(dtmDate, 5, 2) & "/" & _
Mid(dtmDate, 7, 2) & "/" & Left(dtmDate, 4) _
& " " & Mid (dtmDate, 9, 2) & ":" & Mid(dtmDate, 11, 2) & ":" & Mid(dtmDate,13, 2))
End Function
Sub WriteLog(strText)
Dim fs,ts
Const ForAppending = 8
Set fs = CreateObject("Scripting.FileSystemObject")
Set ts = fs.OpenTextFile(Left(Wscript.ScriptFullName, InstrRev(Wscript.ScriptFullName, ".")) & "log", ForAppending, True)
ts.WriteLine strText
ts.Close
End Sub |
Partager