SHARE
TWEET

WQL VirtualBox Detection

waliedassar Apr 4th, 2015 (edited) 1,266 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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
RAW Paste Data
Challenge yourself this year...
Learn something new in 2017
Top