Advertisement
waliedassar

WQL VirtualBox Detection

Apr 4th, 2015
2,239
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
Advertisement
Advertisement
Advertisement
RAW Paste Data Copied
Advertisement