powershell - Powershell - 查找所有 USB 游戏手柄
问题描述
在 Windows 10 中,如果我转到控制面板 --> 设备和打印机,顶行会显示“设备”在我的情况下,这些包括“USB 游戏手柄”、“2.4G 鼠标”等
如何使用 Powershell 查询此设备列表?我想检查一个名为“USB Gamepad”的设备是否连接到 PC。
到目前为止,我已经通过设备管理器路线如下,但无法获得我需要的信息:
$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 ""
}
看起来我可以对注册表中的信息做一些事情@Computer\HKEY_CURRENT_USER\System\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick
解决方案
这个...
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
...
#>
推荐阅读
- apache - .htaccess 从 url 中删除文件名
- php - 使用 wordpress REST API 端点提供基于附件 id 的真实图像
- c++ - ostream 重载中的缓冲区刷新
- arduino - 如何在 Arduino 中触发 CPU 复位?
- excel - Excel VBA - 按标题搜索列并粘贴到新工作表中
- c# - 将不安全字符加载到 XmlDocument
- dask - 覆盖 dask scheduler_port
- r - 为什么在尝试运行用户函数进行重复卡方分析时 purrr map() 函数会产生错误
- python - 打印 1 个十进制数的计算结果
- php - 如何在新标签页中打开链接?