Example output:
USB\ROOT_HUB20\4&340A5D92&0 USB Root Hub
USB\ROOT_HUB\4&FADCEE8&0 USB Root Hub
USB\ROOT_HUB\4&5C1798B&0 USB Root Hub
USB\ROOT_HUB\4&F528189&0 USB Root Hub
USB\ROOT_HUB\4&2AA6BD6F&0 USB Root Hub
USB\ROOT_HUB\4&D199C09&0 USB Root Hub
USB\VID_045E&PID_001E\5&31C07A5D&0&1 Microsoft USB IntelliMouse Explorer
HID\VID_045E&PID_001E\6&34DE1096&0&0000 Microsoft USB IntelliMouse Explorer
USB\ROOT_HUB\4&855AC6A&0 USB Root Hub
USB\VID_413C&PID_2003\5&3784DA8D&0&1 USB Input Device
HID\VID_413C&PID_2003\6&1D10FCA4&0&0000 HID Keyboard Device
USB\ROOT_HUB20\4&4E48F5B&0 USB Root Hub
USB\VID_0DD8&PID_F607\AA04012700007518 USB Mass Storage Device
USBSTOR\DISK&VEN_RM&PROD_MINISAFE_U2C&REV_1100\AA04012700007518&0 Disk drive
USB pen drive is highlighted.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colDevices = objWMIService.ExecQuery _
("Select * From Win32_USBControllerDevice")
For Each objDevice in colDevices
strDeviceName = objDevice.Dependent
strQuotes = Chr(34)
strDeviceName = Replace(strDeviceName, strQuotes, "")
arrDeviceNames = Split(strDeviceName, "=")
strDeviceName = arrDeviceNames(1)
Set colUSBDevices = objWMIService.ExecQuery _
("Select * From Win32_PnPEntity Where DeviceID = '" & strDeviceName & "'")
For Each objUSBDevice in colUSBDevices
x = x & objUSBDevice.PnPDeviceID & " " & objUSBDevice.Description & vbcrlf
Next
Next
WScript.echo x