Windows 中是否有与 Linux 的 lsusb 相当的程序?

Windows 中是否有与 Linux 的 lsusb 相当的程序?

要从软件(最好是 shell)列出插入的 USB 设备。

Linux,或者至少一些 Linuies 似乎有一个命令可以做到这一点lsusb

答案1

您可以尝试使用Get-PnpDevice,及其参数-Class-Status以及-InstanceId

查看不同的输出(我-Status OK在所有示例中都使用了它,因为我相信您需要它来获取当前活动的输出。如果您想查看所有内容,请不要使用此参数):

InstanceId(仅显示 InstanceId 类似‘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…

类(查看与InstanceId的区别,我们有一个使用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和Class(最严格的一个):

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…

然后你可以创建一个函数并将其放入你的PowerShell 配置文件,然后像在 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…

尝试使用该Get-PnPDevicecmdlet 并查看哪个适合您的需求。

答案2

以下在 XP 中对我有用 -https://usbdeview.en.softonic.com/我记得以前在 Windows 时代用过它,所以在使用 Kaperky 快速扫描后,我摸了摸木头并运行了它。我唯一的批评是“信息太多”。它似乎列出了我曾经插入系统的每一件东西!

恐怕我不知道从 DOS 提示符运行什么。希望这能有所帮助。

相关内容