View difference between Paste ID: zM7xeFPb and 667SREHM
SHOW: | | - or go back to the newest paste.
1
' https://twitter.com/waleedassar
2
' http://waliedassar.com/
3
' Simple WMI WQL queries for detecting VirtualBox VM's
4
VBoxFound = False
5
6
set objX = GetObject("winmgmts:\\.\root\cimv2")
7
8
' Win32_NetworkAdapterConfiguration aka NICCONFIG
9
Set NicQ = objX.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration")
10
For Each Nic in NicQ
11
	if Not IsNull(Nic.MACAddress) And Not IsNull(Nic.Description) Then
12
		MacAddress = LCase(CStr(Nic.MACAddress))
13
		Description = LCase(CStr(Nic.Description))
14
		'We want to detect the VirtualBox guest, not the host
15
		If InStr(1,MacAddress,"08:00:27:") = 1 And InStr(1,Description,"virtualbox") = 0 Then
16
		   WScript.Echo "Win32_NetworkAdapterConfiguration ==> Nic.MACAddress: " & Nic.MACAddress
17
		   VBoxFound = True
18
		End If
19
	End If
20
Next
21
22
'Win32_SystemDriver aka sysdriver
23
Set SySDrvQ = objX.ExecQuery("SELECT * FROM Win32_SystemDriver")
24
For Each SysDrv in SysDrvQ
25
    DescSysDrv = SysDrv.Description
26
	DispSysDrv = SysDrv.DisplayName
27
    NameSysDrv = SysDrv.Name
28
	PathSysDrv = SysDrv.PathName
29
	If Not IsNull(DescSysDrv) Then
30
	   If DescSysDrv = "VirtualBox Guest Driver" Or DescSysDrv = "VirtualBox Guest Mouse Service" Or DescSysDrv = "VirtualBox Shared Folders" Or DescSysDrv = "VBoxVideo" Then
31
	      WScript.Echo "Win32_SystemDriver ==> SysDrv.Description ==> " & DescSysDrv
32
		  VBoxFound = True
33
	   End If
34
	End If
35
	
36
	If Not IsNull(DispSysDrv) Then
37
	   If DispSysDrv = "VirtualBox Guest Driver" Or DispSysDrv = "VirtualBox Guest Mouse Service" Or DispSysDrv = "VirtualBox Shared Folders" Or DispSysDrv = "VBoxVideo" Then
38
	      WScript.Echo "Win32_SystemDriver ==> SysDrv.DisplayName ==> " & DispSysDrv
39
		  VBoxFound = True
40
	   End If
41
	End If
42
	
43
	If Not IsNull(NameSysDrv) Then
44
	   If NameSysDrv = "VBoxGuest" Or NameSysDrv = "VBoxMouse" Or NameSysDrv = "VBoxSF" Or NameSysDrv = "VBoxVideo" Then
45
	      WScript.Echo "Win32_SystemDriver ==> SysDrv.Name ==> " & NameSysDrv
46
		  VBoxFound = True
47
	   End If
48
	End If
49
	
50
    If Not IsNull(PathSysDrv) Then
51
	   PathSysDrv_l = LCase(PathSysDrv)
52
	   If InStr(1,PathSysDrv_l,"vboxguest.sys") > 0 Or InStr(1,PathSysDrv_l,"vboxmouse.sys") > 0 Or InStr(1,PathSysDrv_l,"vboxsf.sys") > 0 Or InStr(1,PathSysDrv_l,"vboxvideo.sys") > 0 Then
53
	      WScript.Echo "Win32_SystemDriver ==> SysDrv.PathName ==> " & PathSysDrv
54
		  VBoxFound = True
55
	   End If
56
	End If
57
Next
58
59
' Win32_NTEventLog aka NTEventLog
60
Set EvtLogQ = objX.ExecQuery("SELECT * FROM Win32_NTEventlogFile")
61
For Each EvtLogX In EvtLogQ
62
    If Not IsNull(EvtLogX) Then
63
	   FileNameEvtX = CStr(EvtLogX.FileName)
64
	   FileNameEvtX_l = LCase(FileNameEvtX)
65
	   If FileNameEvtX_l = "sysevent" Or FileNameEvtX_l = "system" Then
66
	      SourcesEvtX = EvtLogX.Sources
67
		  For Each SourceEvtX in SourcesEvtX
68
		      SourceEvtX_l = LCase(CStr(SourceEvtX))
69
			  If SourceEvtX_l = "vboxvideo" Then
70
			     WScript.Echo "Win32_NTEventlogFile ==> EvtLogX.Sources ==> " & SourceEvtX
71
				 VBoxFound = True
72
			  End If
73
		  Next
74
	   End If
75
	End If
76
Next
77
78
' Win32_BIOS aka bios
79
Set BiosQ = objX.ExecQuery("SELECT * FROM Win32_BIOS")
80
For Each Bios in BiosQ
81
    If Not IsNull(Bios) Then
82
	   If Not IsNull(Bios.Manufacturer) Then
83
	      ManufacturerBios = LCase(CStr(Bios.Manufacturer))
84
		  If InStr(1,ManufacturerBios,"innotek gmbh") > 0 Then
85
		     WScript.Echo "Win32_BIOS ==> Bios.Manufacturer ==> " & Bios.Manufacturer
86
			 VBoxFound = True
87
		  End If
88
	   End If
89
	   If Not IsNull(Bios.SMBIOSBIOSVersion) Then
90
	      SMBIOSBIOSVersionBios = LCase(CStr(Bios.SMBIOSBIOSVersion))
91
		  If InStr(1,SMBIOSBIOSVersionBios,"virtualbox") > 0 Then
92
		     WScript.Echo "Win32_BIOS ==> Bios.SMBIOSBIOSVersion ==> " & Bios.SMBIOSBIOSVersion
93
			 VBoxFound = True
94
		  End If
95
	   End If
96
	   If Not IsNull(Bios.Version) Then
97
	      VersionBios = LCase(CStr(Bios.Version))
98
		  If InStr(1,VersionBios,"vbox   - 1") > 0 Then
99
		     WScript.Echo "Win32_BIOS ==> Bios.Version ==> " & Bios.Version
100
			 VBoxFound = True
101
		  End If
102
	   End If
103
	End If
104
Next
105
106
' Win32_DiskDrive aka diskdrive
107
Set DiskDriveQ = objX.ExecQuery("SELECT * FROM Win32_DiskDrive")
108
For Each DiskDrive in DiskDriveQ
109
    If Not IsNull(DiskDrive) Then
110
	   If Not IsNull(DiskDrive.Model) Then
111
	      ModelDskDrv = LCase(DiskDrive.Model)
112
		  If ModelDskDrv = "vbox harddisk" Then
113
		     WScript.Echo "Win32_DiskDrive ==> DiskDrive.Model ==> " & DiskDrive.Model
114
			 VBoxFound = True
115
		  End If
116
	   End If
117
	   If Not IsNull(DiskDrive.PNPDeviceID) Then
118
	      PNPDeviceIDDskDrv = LCase(DiskDrive.PNPDeviceID)
119
		  If InStr(1,PNPDeviceIDDskDrv,"diskvbox") > 0 Then
120
		     WScript.Echo "Win32_DiskDrive ==> DiskDrive.PNPDeviceID ==> " & DiskDrive.PNPDeviceID
121
			 VBoxFound = True
122
		  End If
123
	   End If
124
	End If
125
Next
126
127
' Win32_StartupCommand aka Startup
128
Set StartupQ = objX.ExecQuery("SELECT * FROM Win32_StartupCommand")
129
For Each Startup in StartupQ
130
    If Not IsNull(Startup) Then
131
	   If Not IsNull(Startup.Caption) Then
132
	      CaptionStartup = LCase(CStr(Startup.Caption))
133
		  If CaptionStartup = "vboxtray" Then
134
		     WScript.Echo "Win32_StartupCommand ==> Startup.Caption ==> " & Startup.Caption
135
			 VBoxFound = True
136
		  End If
137
	   End If
138
	   If Not IsNull(Startup.Command) Then
139
	      CommandStartup = LCase(CStr(Startup.Command))
140
		  If InStr(1,CommandStartup,"vboxtray.exe") > 0 Then
141
		     WScript.Echo "Win32_StartupCommand ==> Startup.Command ==> " & Startup.Command
142
			 VBoxFound = True
143
		  End If
144
	   End If
145
	   If Not IsNull(Startup.Description) Then
146
	      DescStartup = LCase(CStr(Startup.Description))
147
		  If DescStartup = "vboxtray" Then
148
		     WScript.Echo "Win32_StartupCommand ==> Startup.Description ==> " & Startup.Description
149
			 VBoxFound = True
150
		  End If
151
	   End If
152
	End If
153
Next
154
155
'Win32_ComputerSystem aka ComputerSystem
156
Set ComputerSystemQ = objX.ExecQuery("SELECT * FROM Win32_ComputerSystem")
157
For Each ComputerSystem in ComputerSystemQ
158
    If Not IsNull(ComputerSystem) Then
159
	   If Not IsNull(ComputerSystem.Manufacturer) Then
160
	      ManufacturerComputerSystem = LCase(CStr(ComputerSystem.Manufacturer))
161
		  If ManufacturerComputerSystem  = "innotek gmbh" Then
162
		     WScript.Echo "Win32_ComputerSystem ==> ComputerSystem.Manufacturer ==> " & ComputerSystem.Manufacturer
163
			 VBoxFound = True
164
		  End If
165
	   End If
166
	   If Not IsNull(ComputerSystem.Model) Then
167
	      ModelComputerSystem = LCase(CStr(ComputerSystem.Model))
168
		  If ModelComputerSystem  = "virtualbox" Then
169
		     WScript.Echo "Win32_ComputerSystem ==> ComputerSystem.Model ==> " & ComputerSystem.Model
170
			 VBoxFound = True
171
		  End If
172
	   End If
173
	   If Not IsNull(ComputerSystem.OEMStringArray) Then
174
	      OEMStringArrayComputerSystem = ComputerSystem.OEMStringArray
175
	      For Each OEM In OEMStringArrayComputerSystem
176
		      OEM_l = LCase(OEM)
177
			  If InStr(1,OEM_l,"vboxver_") > 0 Or InStr(1,OEM_l,"vboxrev_") > 0 Then
178
			     WScript.Echo "Win32_ComputerSystem ==> ComputerSystem.OEMStringArray ==> " & OEM
179
				 VBoxFound = True
180
			  End If
181
		  Next
182
	   End If
183
	End If
184
Next
185
186
'Win32_Service aka service
187
Set ServiceQ = objX.ExecQuery("SELECT * FROM Win32_Service")
188
For Each Service in ServiceQ
189
    If Not IsNull(Service) Then
190
	   If Not IsNull(Service.Caption) Then
191
	      CaptionService = LCase(CStr(Service.Caption))
192
		  If CaptionService = "virtualbox guest additions service" Then
193
		     WScript.Echo "Win32_Service ==> Service.Caption ==> " & Service.Caption
194
			 VBoxFound = True
195
		  End If
196
	   End If
197
	   If Not IsNull(Service.DisplayName) Then
198
	      DisplayNameService = LCase(CStr(Service.DisplayName))
199
		  If DisplayNameService = "virtualbox guest additions service" Then
200
		     WScript.Echo "Win32_Service ==> Service.DisplayName ==> " & Service.DisplayName
201
			 VBoxFound = True
202
		  End If
203
	   End If
204
	   If Not IsNull(Service.Name) Then
205
	      NameService = LCase(CStr(Service.Name))
206
		  If NameService = "vboxservice" Then
207
		     WScript.Echo "Win32_Service ==> Service.Name ==> " & Service.Name
208
			 VBoxFound = True
209
		  End If
210
	   End If
211
	   If Not IsNull(Service.PathName) Then
212
	      PathNameService = LCase(CStr(Service.PathName))
213
		  If InStr(1,PathNameService,"vboxservice.exe") > 0 Then
214
		     WScript.Echo "Win32_Service ==> Service.PathName ==> " & Service.PathName
215
			 VBoxFound = True
216
		  End If
217
	   End If
218
	End If
219
Next
220
221
222
'Win32_LogicalDisk aka LogicalDisk
223
Set LogicalDiskQ = objX.ExecQuery("SELECT * FROM Win32_LogicalDisk")
224
For Each LogicalDisk in LogicalDiskQ
225
    If Not IsNull(LogicalDisk) Then
226
	   If Not IsNull(LogicalDisk.DriveType) Then
227
	      If LogicalDisk.DriveType = 3 Then
228
		     If Not IsNull(LogicalDisk.VolumeSerialNumber) Then
229
			    VolumeSerialNumberLogicalDisk = LCase(LogicalDisk.VolumeSerialNumber)
230
				If VolumeSerialNumberLogicalDisk = "fceae0a3" Then
231
			       WScript.Echo "Win32_LogicalDisk ==> LogicalDisk.VolumeSerialNumber ==> " & LogicalDisk.VolumeSerialNumber
232
				   VBoxFound = True
233
				End If
234
			 End If
235
		  ElseIf LogicalDisk.DriveType = 5 Then
236
		     If Not IsNull(LogicalDisk.VolumeName) Then
237
			    VolumeNameLogicalDisk = LCase(LogicalDisk.VolumeName)
238
				'Volume name should be "VBOXADDITIONS_4."
239
				If InStr(1,VolumeNameLogicalDisk,"vboxadditions") > 0 Then
240
			       WScript.Echo "Win32_LogicalDisk ==> LogicalDisk.VolumeName ==> " & LogicalDisk.VolumeName
241
				   VBoxFound = True
242
				End If
243
			 End If		  
244
		  End If
245
	   End If
246
	End If
247
Next
248
249
'Win32_LocalProgramGroup
250
Set LogicalProgramGroupQ = objX.ExecQuery("SELECT * FROM Win32_LogicalProgramGroup")
251
For Each LocalProgramGroup in LogicalProgramGroupQ
252
    If Not IsNull(LocalProgramGroup) Then
253
	   NameLocalProgramGroup = LCase(LocalProgramGroup.Name)
254
	   If InStr(1,NameLocalProgramGroup,"oracle vm virtualbox guest additions") > 0 Then
255
	      WScript.Echo "Win32_LogicalProgramGroup ==> LocalProgramGroup.Name ==> " & LocalProgramGroup.Name
256
		  VBoxFound = True
257
	   End If
258
	End If
259
Next
260
261
262
263
'Win32_NetworkAdapter aka NIC
264
Set NicQQ = objX.ExecQuery("SELECT * FROM Win32_NetworkAdapter")
265
For Each NIC_x in NicQQ
266
	if Not IsNull(NIC_x.MACAddress) And Not IsNull(NIC_x.Description) Then
267
		MacAddress_x = LCase(CStr(NIC_x.MACAddress))
268
		Description_x  = LCase(CStr(NIC_x.Description))
269
		'We want to detect the VirtualBox guest, not the host
270
		If InStr(1,MacAddress_x,"08:00:27:") = 1 And InStr(1,Description_x,"virtualbox") = 0 Then
271
		   WScript.Echo "Wow: Win32_NetworkAdapter ==> NIC.MacAddress: " & NIC_x.MACAddress
272
		   VBoxFound = True
273
		End If
274
	End If
275
Next
276
277
278
'Win32_Process aka process
279
Set ProcessQ = objX.ExecQuery("SELECT * FROM Win32_Process")
280
For Each Process in ProcessQ
281
    If Not IsNull(Process) Then
282
	   If Not IsNull(Process.Description) Then
283
	      DescProcess = LCase(Process.Description)
284
		  If DescProcess = "vboxservice.exe" Or DescProcess = "vboxtray.exe" Then
285
		     WScript.Echo "Win32_Process ==> Process.Description ==> " & Process.Description
286
			 VBoxFound = True
287
		  End If
288
	   End If
289
	   If Not IsNull(Process.Name) Then
290
	      NameProcess = LCase(Process.Name)
291
		  If NameProcess = "vboxservice.exe" Or NameProcess = "vboxtray.exe" Then
292
		     WScript.Echo "Win32_Process ==> Process.Name ==> " & Process.Name
293
			 VBoxFound = True
294
		  End If
295
	   End If
296
	   If Not IsNull(Process.CommandLine) Then
297
	      CmdProcess = LCase(Process.CommandLine)
298
		  If InStr(1,CmdProcess,"vboxservice.exe") > 0 OR InStr(1,CmdProcess,"vboxtray.exe") > 0 Then
299
		     WScript.Echo "Win32_Service ==> Process.CommandLine ==> " & Process.CommandLine
300
			 VBoxFound = True
301
		  End If
302
	   End If
303
	   If Not IsNull(Process.ExecutablePath) Then
304
	      ExePathProcess = LCase(Process.ExecutablePath)
305
		  If InStr(1,ExePathProcess,"vboxservice.exe") > 0 OR InStr(1,ExePathProcess,"vboxtray.exe") > 0 Then
306
		     WScript.Echo "Win32_Service ==> Process.ExecutablePath ==> " & Process.ExecutablePath
307
			 VBoxFound = True
308
		  End If
309
	   End If
310
	End If
311
Next
312
313
'Win32_BaseBoard aka BaseBoard
314
Set BaseBoardQ = objX.ExecQuery("SELECT * FROM Win32_BaseBoard")
315
For Each BaseBoard in BaseBoardQ
316
    If Not IsNull(BaseBoard) Then
317
	   If Not IsNull(BaseBoard.Manufacturer) Then
318
	      ManufacturerBaseBoard = LCase(BaseBoard.Manufacturer)
319
		  If ManufacturerBaseBoard = "oracle corporation" Then
320
		     WScript.Echo "Win32_BaseBoard ==> BaseBoard.Manufacturer ==> " & BaseBoard.Manufacturer
321
			 VBoxFound = True
322
		  End If
323
	   End If
324
	   If Not IsNull(BaseBoard.Product) Then
325
	      ProductBaseBoard = LCase(BaseBoard.Product)
326
		  If ProductBaseBoard = "virtualbox" Then
327
		     WScript.Echo "Win32_BaseBoard ==> BaseBoard.Product ==> " & BaseBoard.Product
328
			 VBoxFound = True
329
		  End If
330
	   End If
331
	End If
332
Next
333
334
'Win32_SystemEnclosure aka SystemEnclosure
335
Set SystemEnclosureQ = objX.ExecQuery("SELECT * FROM Win32_SystemEnclosure")
336
For Each SystemEnclosure in SystemEnclosureQ
337
    If Not IsNull(SystemEnclosure) Then
338
	   If Not IsNull(SystemEnclosure.Manufacturer) Then
339
	      ManufacturerSystemEnclosure = LCase(SystemEnclosure.Manufacturer)
340
		  If ManufacturerSystemEnclosure = "oracle corporation" Then
341
		     WScript.Echo "Win32_SystemEnclosure ==> SystemEnclosure.Manufacturer ==> " & SystemEnclosure.Manufacturer
342
			 VBoxFound = True
343
		  End If
344
	   End If
345
	End If
346
Next
347
348
'Win32_CDROMDrive aka cdrom
349
Set CDRomQ = objX.ExecQuery("SELECT * FROM Win32_CDROMDrive")
350
For Each CDRom in CDRomQ
351
    If Not IsNull(CDRom) Then
352
	   If Not IsNull(CDRom.Name) Then
353
	      NameCDRom = LCase(CDRom.Name)
354
		  If NameCDRom = "vbox cd-rom" Then
355
		     WScript.Echo "Win32_CDROMDrive ==> CDRom.Name ==> " & CDRom.Name
356
			 VBoxFound = True
357
		  End If
358
	   End If
359
	   If Not IsNull(CDRom.VolumeName) Then
360
	      VolumeNameCDRom = LCase(CDRom.VolumeName)
361
		  'Volume name should be "VBOXADDITIONS_4."
362
		  If InStr(1,VolumeNameCDRom,"vboxadditions") > 0 Then
363
		     WScript.Echo "Win32_CDROMDrive ==> CDRom.VolumeName ==> " & CDRom.VolumeName
364
			 VBoxFound = True
365
		  End If
366
	   End If
367
	   If Not IsNull(CDRom.DeviceID) Then
368
	      DeviceIDCDRom = LCase(CDRom.DeviceID)
369
		  If InStr(1,DeviceIDCDRom,"cdromvbox") > 0 Then
370
		     WScript.Echo "Win32_CDROMDrive ==> CDRom.DeviceID ==> " & CDRom.DeviceID
371
			 VBoxFound = True
372
		  End If
373
	   End If
374
	   If Not IsNull(CDRom.PNPDeviceID) Then
375
	      PNPDeviceIDCDRom = LCase(CDRom.PNPDeviceID)
376
		  If InStr(1,PNPDeviceIDCDRom,"cdromvbox") > 0 Then
377
		     WScript.Echo "Win32_CDROMDrive ==> CDRom.PNPDeviceID ==> " & CDRom.PNPDeviceID
378
			 VBoxFound = True
379
		  End If
380
	   End If		   
381
	End If
382
Next
383
384
385
'WIN32_NetworkClient aka netclient
386
Set NetClientQ = objX.ExecQuery("SELECT * FROM WIN32_NetworkClient")
387
For Each NetClient in NetClientQ
388
    If Not IsNull(NetClient) Then
389
	   If Not IsNull(NetClient.Description) Then
390
	      DescNetClient = LCase(NetClient.Description)
391
		  If DescNetClient = "vboxsf" Then
392
		     WScript.Echo "WIN32_NetworkClient ==> NetClient.Description ==> " & NetClient.Description
393
			 VBoxFound = True
394
		  End If
395
	   End If
396
	   If Not IsNull(NetClient.Manufacturer) Then
397
	      ManufacturerNetClient = LCase(NetClient.Manufacturer)
398
		  If ManufacturerNetClient = "oracle corporation" Then
399
		     WScript.Echo "WIN32_NetworkClient ==> NetClient.Manufacturer ==> " & NetClient.Manufacturer
400
			 VBoxFound = True
401
		  End If
402
	   End If
403
	   If Not IsNull(NetClient.Name) Then
404
	      NameNetClient = LCase(NetClient.Name)
405
		  If NameNetClient = "virtualbox shared folders" Then
406
		     WScript.Echo "WIN32_NetworkClient ==> NetClient.Name ==> " & NetClient.Name
407
			 VBoxFound = True
408
		  End If
409
	   End If
410
	End If
411
Next
412
413
'Win32_ComputerSystemProduct aka csproduct
414
Set CSProductQ = objX.ExecQuery("SELECT * FROM Win32_ComputerSystemProduct")
415
For Each CSProduct in CSProductQ
416
    If Not IsNull(CSProduct) Then
417
	   If Not IsNull(CSProduct.Name) Then
418
	      NameCSProduct = LCase(CSProduct.Name)
419
		  If NameCSProduct = "virtualbox" Then
420
		     WScript.Echo "Win32_ComputerSystemProduct ==> CSProduct.Name ==> " & CSProduct.Name
421
			 VBoxFound = True
422
		  End If
423
	   End If
424
	   If Not IsNull(CSProduct.Vendor) Then
425
	      VendorCSProduct = LCase(CSProduct.Vendor)
426
		  If VendorCSProduct = "innotek gmbh" Then
427
		     WScript.Echo "Win32_ComputerSystemProduct ==> CSProduct.Vendor ==> " & CSProduct.Vendor
428
			 VBoxFound = True
429
		  End If
430
	   End If
431
	End If
432
Next
433
434
'Win32_VideoController
435
Set VideoControllerQ = objX.ExecQuery("SELECT * FROM Win32_VideoController")
436
For Each VideoController in VideoControllerQ
437
    If Not IsNull(VideoController) Then
438
	   If Not IsNull(VideoController.Name) Then
439
	      NameVideoController = LCase(VideoController.Name)
440
		  If NameVideoController = "virtualbox graphics adapter" Then
441
		     WScript.Echo "Win32_VideoController ==> VideoController.Name ==> " & VideoController.Name
442
			 VBoxFound = True
443
		  End If
444
	   End If
445
	   If Not IsNull(VideoController.Description) Then
446
	      DescVideoController = LCase(VideoController.Description)
447
		  If DescVideoController = "virtualbox graphics adapter" Then
448
		     WScript.Echo "Win32_VideoController ==> VideoController.Description ==> " & VideoController.Description
449
			 VBoxFound = True
450
		  End If
451
	   End If
452
	   If Not IsNull(VideoController.Caption) Then
453
	      CaptionVideoController = LCase(VideoController.Caption)
454
		  If CaptionVideoController = "virtualbox graphics adapter" Then
455
		     WScript.Echo "Win32_VideoController ==> VideoController.Caption ==> " & VideoController.Caption
456
			 VBoxFound = True
457
		  End If
458
	   End If
459
	   If Not IsNull(VideoController.VideoProcessor) Then
460
	      VideoProcessorVideoController = LCase(VideoController.VideoProcessor)
461
		  If VideoProcessorVideoController = "vbox" Then
462
		     WScript.Echo "Win32_VideoController ==> VideoController.VideoProcessor ==> " & VideoController.VideoProcessor
463
			 VBoxFound = True
464
		  End If
465
	   End If
466
	   If Not IsNull(VideoController.InstalledDisplayDrivers) Then
467
	      InstalledDisplayDriversVideoController = LCase(VideoController.InstalledDisplayDrivers)
468
		  If InstalledDisplayDriversVideoController = "vboxdisp.sys" Then
469
		     WScript.Echo "Win32_VideoController ==> VideoController.InstalledDisplayDrivers ==> " & VideoController.InstalledDisplayDrivers
470
			 VBoxFound = True
471
		  End If
472
	   End If
473
	   If Not IsNull(VideoController.InfSection) Then
474
	      InfSectionVideoController = LCase(VideoController.InfSection)
475
		  If InfSectionVideoController = "vboxvideo" Then
476
		     WScript.Echo "Win32_VideoController ==> VideoController.InfSection ==> " & VideoController.InfSection
477
			 VBoxFound = True
478
		  End If
479
	   End If
480
	   If Not IsNull(VideoController.AdapterCompatibility) Then
481
	      AdapterCompatibilityVideoController = LCase(VideoController.AdapterCompatibility)
482
		  If AdapterCompatibilityVideoController = "oracle corporation" Then
483
		     WScript.Echo "Win32_VideoController ==> VideoController.AdapterCompatibility ==> " & VideoController.AdapterCompatibility
484
			 VBoxFound = True
485
		  End If
486
	   End If
487
	End If
488
Next
489
490
491
'Win32_PnPEntity
492
Set PnPEntityQ = objX.ExecQuery("SELECT * FROM Win32_PnPEntity")
493
For Each PnPEntity in PnPEntityQ
494
    If Not IsNull(PnPEntity) Then
495
	   If Not IsNull(PnPEntity.Name) Then
496
	      NamePnPEntity = LCase(PnPEntity.Name)
497
		  If NamePnPEntity = "virtualbox device" Or NamePnPEntity = "vbox harddisk" Or NamePnPEntity = "vbox cd-rom" Or NamePnPEntity = "virtualbox graphics adapter" Then
498
		     WScript.Echo "Win32_PnPEntity ==> PnPEntity.Name ==> " & PnPEntity.Name
499
			 VBoxFound = True
500
		  End If
501
	   End If
502
	   If Not IsNull(PnPEntity.Caption) Then
503
	      CaptionPnPEntity = LCase(PnPEntity.Caption)
504
		  If CaptionPnPEntity = "virtualbox device" Or CaptionPnPEntity = "vbox harddisk" Or CaptionPnPEntity = "vbox cd-rom" Or CaptionPnPEntity = "virtualbox graphics adapter" Then
505
		     WScript.Echo "Win32_PnPEntity ==> PnPEntity.Caption ==> " & PnPEntity.Caption
506
			 VBoxFound = True
507
		  End If
508
	   End If
509
	   If Not IsNull(PnPEntity.Description) Then
510
	      DescPnPEntity = LCase(PnPEntity.Description)
511
		  If DescPnPEntity = "virtualbox device" Or DescPnPEntity = "virtualbox graphics adapter" Then
512
		     WScript.Echo "Win32_PnPEntity ==> PnPEntity.Description ==> " & PnPEntity.Description
513
			 VBoxFound = True
514
		  End If
515
	   End If
516
	   'Had to remove .Manufacturer as it detects Host as well
517
	   'If Not IsNull(PnPEntity.Manufacturer) Then
518
	      'ManuPnPEntity = LCase(PnPEntity.Manufacturer)
519
		  'If ManuPnPEntity = "oracle corporation" Then
520
		     'WScript.Echo "Win32_PnPEntity ==> PnPEntity.Manufacturer ==> " & PnPEntity.Manufacturer
521
			 'VBoxFound = True
522
		  'End If
523
	   'End If
524
	   If Not IsNull(PnPEntity.Service) Then
525
	      SrvPnPEntity = LCase(PnPEntity.Service)
526
		  If SrvPnPEntity = "vboxguest" Or SrvPnPEntity = "vboxvideo" Then
527
		     WScript.Echo "Win32_PnPEntity ==> PnPEntity.Service ==> " & PnPEntity.Service
528
			 VBoxFound = True
529
		  End If
530
	   End If
531
	   If Not IsNull(PnPEntity.DeviceID) Then
532
	      DeviceIDPnPEntity = LCase(PnPEntity.DeviceID)
533
		  If InStr(1,DeviceIDPnPEntity,"diskvbox_") > 0 Or InStr(1,DeviceIDPnPEntity,"cdromvbox_") > 0 Then
534
		     WScript.Echo "Win32_PnPEntity ==> PnPEntity.DeviceID ==> " & PnPEntity.DeviceID
535
			 VBoxFound = True
536
		  End If
537
	   End If
538
	   If Not IsNull(PnPEntity.PNPDeviceID) Then
539
	      PNPDeviceIDPnPEntity = LCase(PnPEntity.PNPDeviceID)
540
		  If InStr(1,PNPDeviceIDPnPEntity,"diskvbox_") > 0 Or InStr(1,PNPDeviceIDPnPEntity,"cdromvbox_") > 0 Then
541
		     WScript.Echo "Win32_PnPEntity ==> PnPEntity.PNPDeviceID ==> " & PnPEntity.PNPDeviceID
542
			 VBoxFound = True
543
		  End If
544
	   End If
545
	End If
546
Next
547
548
'Win32_NetworkConnection aka NetUse
549
Set NetUseQ = objX.ExecQuery("SELECT * FROM Win32_NetworkConnection")
550
For Each NetUse in NetUseQ
551
    If Not IsNull(NetUse) Then
552
	   If Not IsNull(NetUse.Name) Then
553
	      NameNetUse = LCase(NetUse.Name)
554
		  If InStr(1,NameNetUse,"vboxsvr") > 0 Then
555
		     WScript.Echo "Win32_NetworkConnection ==> NetUse.Name ==> " & NetUse.Name
556
			 VBoxFound = True
557
		  End If
558
	   End If
559
	   If Not IsNull(NetUse.Description) Then
560
	      DescNetUse = LCase(NetUse.Description)
561
		  If  InStr(1,DescNetUse,"virtualbox shared folders") > 0 Then
562
		     WScript.Echo "Win32_NetworkConnection ==> NetUse.Description ==> " & NetUse.Description
563
			 VBoxFound = True
564
		  End If
565
	   End If
566
	   If Not IsNull(NetUse.ProviderName) Then
567
	      PrvNameNetUse = LCase(NetUse.ProviderName)
568
		  If PrvNameNetUse = "virtualbox shared folders" Then
569
		     WScript.Echo "Win32_NetworkConnection ==> NetUse.ProviderName ==> " & NetUse.ProviderName
570
			 VBoxFound = True
571
		  End If
572
	   End If
573
574
	   If Not IsNull(NetUse.RemoteName) Then
575
	      RemoteNameNetUse = LCase(NetUse.RemoteName)
576
		  If InStr(1,RemoteNameNetUse,"vboxsvr") > 0 Then
577
		     WScript.Echo "Win32_NetworkConnection ==> NetUse.RemoteName ==> " & NetUse.RemoteName
578
			 VBoxFound = True
579
		  End If
580
	   End If
581
	   If Not IsNull(NetUse.RemotePath) Then
582
	      RemotePathNetUse = LCase(NetUse.RemotePath)
583
		  If InStr(1,RemotePathNetUse,"vboxsvr") > 0 Then
584
		     WScript.Echo "Win32_NetworkConnection ==> NetUse.RemotePath ==> " & NetUse.RemotePath
585
			 VBoxFound = True
586
		  End If
587
	   End If
588
	End If
589
Next
590
591
If VBoxFound = False Then
592
   WScript.Echo "VirtualBox Was Not Found"
593
End If