-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathWMI Hardware survey.vbs
194 lines (152 loc) · 6.37 KB
/
WMI Hardware survey.vbs
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
188
189
190
191
192
193
194
Dim WMI, Col, Ob, S2, i2, s3, sFil, sBul, sLine
'-- path to save data. ------------------
sFil = "C:\Sysinfo.txt"
sBul = " " & Chr(149) & " "
sLine = vbCrLf & "_____________________________________________" & vbCrLf & vbCrLf
Err.Clear
On Error Resume Next
Set WMI = GetObject("WinMgmts:")
If (Err.number <> 0) Then
MsgBox "Error creating WMI object. Error: " & Err.Number & " - " & Err.Description
WScript.quit
End If
'-------------- product ------------------------------------
Set Col = WMI.ExecQuery("Select * from Win32_ComputerSystemProduct")
S2 = S2 & sBul & " Product Info:" & vbCrLf & vbCrLf
For Each Ob in Col
S2 = S2 & "Product Name: " & Ob.Name & vbCrLf
S2 = S2 & "Product Version: " & Ob.Version & vbCrLf
S2 = S2 & "Product Description: " & Ob.Description & vbCrLf
S2 = S2 & "IdentifyingNumber: " & Ob.IdentifyingNumber & vbCrLf
S2 = S2 & "Product UUID: " & Ob.UUID & vbCrLf
Next
S2 = S2 & sLine
'-- box id --------------------------------------------------------------------
Set Col = WMI.ExecQuery("Select * from Win32_SystemEnclosure")
S2 = S2 & sBul & "Machine ID (SystemEnclosure) info:" & vbCrLf & vbCrLf
For Each Ob in Col
S2 = S2 & "Part Number: " & Ob.PartNumber & vbCrLf
S2 = S2 & "Serial Number: " & Ob.SerialNumber & vbCrLf
S2 = S2 & "Asset Tag: " & Ob.SMBIOSAssetTag & vbCrLf
Next
S2 = S2 & sLine
'-- motherboard --------------------------------------------------------------------
Set Col = WMI.ExecQuery("Select * from Win32_MotherboardDevice")
S2 = S2 & sBul & "Motherboard info:" & vbCrLf & vbCrLf
For Each Ob in Col
S2 = S2 & "Caption: " & Ob.Caption & vbCrLf
S2 = S2 & "InstallDate: " & Ob.InstallDate & vbCrLf
S2 = S2 & "DeviceID: " & Ob.DeviceID & vbclrf
Next
S2 = S2 & vbCrLf
'----------- bios -----------------------------------
Set Col = WMI.ExecQuery("Select * from Win32_BIOS")
S2 = S2 & sBul & "BIOS info:" & vbCrLf & vbCrLf
For Each Ob in Col
S2 = S2 & "Manufacturer: " & Ob.Manufacturer & vbCrLf
S2 = S2 & "Description: " & Ob.Description & vbCrLf
S2 = S2 & "Version: " & Ob.Version & vbCrLf
S2 = S2 & "InstallDate: " & Ob.InstallDate & vbCrLf
S2 = S2 & "SerialNumber: " & Ob.SerialNumber & vbCrLf
Next
S2 = S2 & sLine
'-- CPU --------------------------------------------------------------------
Set Col = WMI.ExecQuery("Select * from Win32_Processor")
S2 = S2 & sBul & "CPU:" & vbCrLf & vbCrLf
For Each Ob in Col
S2 = S2 & "Manufacturer: " & Ob.Manufacturer & vbCrLf
S2 = S2 & "Description: " & Ob.Description & vbCrLf
S2 = S2 & "Name: " & Ob.Name & vbCrLf
S2 = S2 & "Speed: " & Ob.MaxClockSpeed & sLine
Next
'-- RAM and product info. --------------------------------------------------------------------
Set Col = WMI.ExecQuery("Select * from Win32_ComputerSystem")
S2 = S2 & sBul & "Installed RAM: "
For Each Ob in Col
i2 = Ob.TotalPhysicalMemory
If i2 > 0 Then
i2 = i2 \ 1024 \ 1024
S2 = S2 & CStr(i2) & " MB" & vbCrLf
End If
S2 = S2 & sLine
Next
S2 = S2 & sBul & "PC Info.:" & vbCrLf &vbCrLf
For Each Ob in Col
S2 = S2 & "PC or motherboard model: " & Ob.Model & vbCrLf
S2 = S2 & "System name: " & Ob.Name & vbCrLf
S2 = S2 & "System Manufacturer: " & Ob.Manufacturer & vbCrLf
Next
S2 = S2 & sLine
'---------- onboard devices ----------------------------------------
Set Col = WMI.ExecQuery("Select * from Win32_OnBoardDevice")
S2 = S2 & sBul & "Onboard devices:" & vbCrLf & vbCrLf
For Each Ob in Col
S2 = S2 & "Description: " & Ob.Description & vbCrLf
S2 = S2 & "Name: " & Ob.Name & vbCrLf
S2 = S2 & "Manufacturer: " & Ob.Manufacturer & vbCrLf
S2 = S2 & "Model: " & Ob.Model & vbCrLf & vbCrLf
Next
S2 = S2 & sLine
'-- graphics --------------------------------------------------------------------
Set Col = WMI.ExecQuery("Select * from Win32_VideoController")
S2 = S2 & sBul & "Graphics:" & vbCrLf & vbCrLf
For Each Ob in Col
S2 = S2 & "Description: " & Ob.Description & vbCrLf
S2 = S2 & "Name: " & Ob.Name & vbCrLf
i2 = Ob.AdapterRAM
If i2 > 0 Then
i2 = i2 \ 1024 \ 1024
S2 = S2 & "RAM: " & " MB" & vbCrLf
End If
S2 = S2 & "Driver Date: " & Ob.DriverDate & vbCrLf
S2 = S2 & "Driver Version: " & Ob.DriverVersion & vbCrLf
Next
S2 = S2 & sLine
'-- hard disks --------------------------------------------------------------------
Set Col = WMI.ExecQuery("Select * from Win32_DiskDrive")
S2 = S2 & sBul & "Drives:" & vbCrLf & vbCrLf
For Each Ob in Col
S2 = S2 & "Description: " & Ob.Description & vbCrLf
S2 = S2 & "Manufacturer: " & Ob.Manufacturer & vbCrLf
S2 = S2 & "Model: " & Ob.Model & vbCrLf
S2 = S2 & "InterfaceType: " & Ob.InterfaceType & vbCrLf
S2 = S2 & "MediaType: " & Ob.MediaType & vbCrLf
S2 = S2 & "DeviceID: " & Ob.DeviceID & vbCrLf
S2 = S2 & "Number of Win Partitions: " & Ob.Partitions & vbCrLf
s3 = CStr(Ob.Size)
If Len(s3) > 9 Then
s3 = Left(s3, (len(s3) - 9))
S2 = S2 & "Size (GB): " & s3
End If
S2 = S2 & vbCrLf & vbCrLf
Next
S2 = S2 & sLine
'-- CD/DVD drives --------------------------------------------------------------------
Set Col = WMI.ExecQuery("Select * from Win32_CDROMDrive")
S2 = S2 & sBul & "CD/DVD drives:" & vbCrLf & vbCrLf
For Each Ob in Col
S2 = S2 & "Description: " & Ob.Description & vbCrLf
S2 = S2 & "Caption: " & Ob.Caption & vbCrLf
S2 = S2 & "Manufacturer: " & Ob.Manufacturer & vbCrLf & vbCrLf
Next
S2 = S2 & sLine
'-- network adapter --------------------------------------------------------------------
Set Col = WMI.ExecQuery("Select * from Win32_NetworkAdapter")
S2 = S2 & sBul & "Network Adapter:" & vbCrLf & vbCrLf
For Each Ob in Col
S2 = S2 & "Description: " & Ob.Description & vbCrLf
S2 = S2 & "Name: " & Ob.ProductName & vbCrLf
S2 = S2 & "Manufacturer: " & Ob.Manufacturer & vbCrLf
S2 = S2 & "MAC Address: " & Ob.MACAddress & vbCrLf & vbCrLf
Next
S2 = S2 & sLine
Set Col = Nothing
Set WMI = Nothing
Dim FSO, TS
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TS = FSO.CreateTextFile(sFil, True)
TS.Write S2
TS.Close
Set TS = Nothing
Set FSO = Nothing
MsgBox "Done."