通过VBScript获取连接usb设备的VID/PID



我正在寻找一个VBScript,可以在一个变量中存储连接的USB设备的VID/PID。那么VBScript是怎么做的呢?

您可以通过使用WMI获得它,但WMI中没有用于连接USB设备的动态类。
需要一些usb设备与插入设备的关系来获得插入设备。
所以,考虑这个例子:

Option Explicit
Dim oWMISrv, collDvcs, collUSBDvcs, iUSBDvc , iDvc, sDvcID, sPID, sVID
Function ReplaceX(ByVal sValue, ByVal sPattern, ByVal sNValue)
    Dim oReg : Set oReg = New RegExp
    oReg.Pattern = sPattern
    ReplaceX = oReg.Replace(sValue, sNValue)
    Set oReg = Nothing
End Function
Set oWMISrv = GetObject("winmgmts:\.rootcimv2")
Set collDvcs = oWMISrv.ExecQuery("Select * From Win32_USBControllerDevice")
For Each iDvc In collDvcs
    If InStr(iDvc.Dependent, "VID_") Then ' Except keychain drives
        sDvcID = ReplaceX(iDvc.Dependent, ".*""(.*)""", "$1")
        sPID = ReplaceX(sDvcID, ".*PID_([^\]*).*", "$1")
        sVID = ReplaceX(sDvcID, ".*VID_([^&]*).*", "$1")
        Set collUSBDvcs = oWMISrv.ExecQuery _
        ("Select * From Win32_PnPEntity Where DeviceID = '" & sDvcID & "'")
        For Each iUSBDvc in collUSBDvcs
            Wscript.Echo "Name : "& iUSBDvc.Description
            Wscript.Echo "VID : "& sVID
            Wscript.Echo "PID : "& sPID
            Wscript.Echo String(50, "-")
        Next
        Set collUSBDvcs = Nothing
    End If
Next
Set collDvcs = Nothing
Set oWMISrv = Nothing

最新更新