Is there an equivalent to Linux's lsusb in Windows?
To list the plugged in usb devices from software, preferably a shell.
Linux, or at least some Linuies seem to have a command to do that lsusb
You can play around with Get-PnpDevice
, and its Parameters -Class
, -Status
and -InstanceId
See the different outputs (I used -Status OK
in all examples, since I believe you need that to get the currently active ones. If you want to see everything, don't use this parameter):
InstanceId (Will only show stuff where InstanceId like 'USB*'):
PS C:\> Get-PnpDevice -InstanceId 'USB*' -Status OK
Status Class FriendlyName InstanceId
------ ----- ------------ ----------
OK HIDClass USB-Input device USB\VID_03F0&P…
OK HIDClass USB-Input device USB\VID_0B0E&P…
OK MEDIA Logitech BRIO USB\VID_046D&P…
OK USB USB-Root-Hub (USB 3.0) USB\ROOT_HUB30…
OK USB Logitech BRIO USB\VID_046D&P…
OK USB USB-Composite unit USB\VID_0B0E&P…
OK MEDIA Jabra PRO 9460 USB\VID_0B0E&P…
OK Image Logitech BRIO USB\VID_046D&P…
OK HIDClass USB-Input device USB\VID_1BCF&P…
OK HIDClass USB-Input device USB\VID_03F0&P…
OK USB USB-Composite unit USB\VID_03F0&P…
Class (See the difference to InstanceId, we have one return with InstanceId PCI*):
PS C:\> Get-PnpDevice -Class 'USB' -Status OK
Status Class FriendlyName InstanceId
------ ----- ------------ ----------
OK USB USB-Root-Hub (USB 3.0) USB\ROOT_HUB30…
OK USB Logitech BRIO USB\VID_046D&P…
OK USB USB-Composite unit USB\VID_0B0E&P…
OK USB Intel(R) USB 3.0 eXtensi... PCI\VEN_8086&D…
OK USB USB-Composite unit USB\VID_03F0&P…
InstanceId and Class (the most strict one):
PS C:\> Get-PnpDevice -InstanceId 'USB*' -Class USB -Status OK
Status Class FriendlyName InstanceId
------ ----- ------------ ----------
OK USB USB-Root-Hub (USB 3.0) USB\ROOT_HUB30…
OK USB Logitech BRIO USB\VID_046D&P…
OK USB USB-Composite unit USB\VID_0B0E&P…
OK USB USB-Composite unit USB\VID_03F0&P…
Then you can create a function and put it in your PowerShell Profile, and simply use it like you would in Linux
PS C:\> Function lsusb { Get-PnpDevice -InstanceId 'USB*' -Class 'USB' -Status OK }
PS C:\> lsusb
Status Class FriendlyName InstanceId
------ ----- ------------ ----------
OK USB USB-Root-Hub (USB 3.0) USB\ROOT_HUB30…
OK USB Logitech BRIO USB\VID_046D&P…
OK USB USB-Composite unit USB\VID_0B0E&P…
OK USB USB-Composite unit USB\VID_03F0&P…
Play around with the Get-PnPDevice
cmdlet and see what fits your needs.