Powershell-查找所有USB游戏手柄

时间:2020-08-06 00:08:08

标签: powershell windows-10

在Windows 10中,如果我转到控制面板->设备和打印机,第一行将显示“设备”。在我的情况下,这些设备包括“ USB游戏板”,“ 2.4G鼠标”等

如何使用Powershell查询此设备列表?我想检查PC上是否连接了名为“ USB Gamepad”的设备。

到目前为止,我已经按照以下步骤通过设备管理器路线进行了操作,但是无法获取我需要的信息:

$devs = Get-PnPDevice -Class HIDClass | where { $_.HardwareID.Contains("HID_DEVICE_SYSTEM_GAME") }

foreach ($d in $devs){
    echo $d.FriendlyName
    echo $d.DeviceID
    echo $d.HardwareID
    echo $d.Name
    echo $d.Class
    echo ""
    echo ""
}

似乎我可以对注册表{@ {1}}中的信息进行某些操作

1 个答案:

答案 0 :(得分:0)

这个...

Get-PnPDevice -Class HIDClass | 
where { $_.HardwareID.Contains("HID_DEVICE_SYSTEM_GAME") }

...如果语法上不正确,应该是这个...

... 
where { $PSItem.HardwareID -Contains ...}

比较运算符没有点符号。

我会将该行重构为此...

Clear-Host
Get-PnPDevice -Class HIDClass | 
ForEach {
    $PSItem | 
    Where-Object {$PSItem.HardwareID -match 'HID_DEVICE'} | 
    Select-Object -Property FriendlyName, DeviceID, HardwareID, Name, Class
    "`n`n"
} 
# Results
<#
...
FriendlyName : HID-compliant consumer control device
DeviceID     : HID\VID_17A0&PID_0305&MI_03\B&345E789C&0&0000
HardwareID   : {HID\VID_17A0&PID_0305&REV_0207&MI_03, HID\VID_17A0&PID_0305&MI_03, HID\VID_17A0&UP:000C_U:0001, HID_DEVICE_SYSTEM_CONSUMER, 
               HID_DEVICE_UP:000C_U:0001, HID_DEVICE}
Name         : HID-compliant consumer control device
Class        : HIDClass
...
#>