1

In my Device Manager, there is "Realtek USB FE Family Controller". After the computer wakes up from sleep mode, sometimes the controller cannot be recognised, and "TK_NIC_DRIVER_INSTALLER.sfx.exe" needs to be run so as to get it recognised.

Is it possible for VBScript to check whether the controller is there? If it is not there, the following command will be run.

CreateObject("wscript.shell").run("""C:\RTK_NIC_DRIVER_INSTALLER.sfx.exe"""),0
3
  • 1
    Why do you need to use VBScript, a technology from the mid-1990s to do this. Why not use PowerShell and the Get-PnpDevice cmdlet? Commented Feb 21, 2018 at 15:33
  • I want VBScript because it will not bring up a command window, and I don't know how to use PowerShell. Commented Feb 21, 2018 at 15:45
  • It seems like (at least in theory) that this should be possible. Googling didn't reveal any direct way to query items in the device manager (though there could be) but it does seem you can get a list of items with VBScript (so you could potentially compare names/info and see whether a device was listed or not). The basic approaches seemed to either use the WMI interfaces for VBScript directly to get items or to parse the output of msinfo32.exe. Commented Feb 24, 2018 at 12:40

1 Answer 1

1

You can use the win32_PnPEntity WMI class. Here we're just iterating through and checking for devices that have that description:

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PnPEntity")
For Each objItem In colItems
    If InStr(1, objItem.Description, "Realtek USB FE Family Controller", 1) > 0 Then
        CreateObject("wscript.shell").run("""C:\RTK_NIC_DRIVER_INSTALLER.sfx.exe"""),0
    End If
Next

If that doesn't work you may also need to test for objItem.Present or objItem.Status

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .