【发布时间】:2021-12-06 20:22:15
【问题描述】:
我有一个工作脚本可以使用它们各自的 InstanceID 禁用 4 个 USB 游戏杆
$pnpIds = 'HID\VID_0079&PID_0006\7&1699A0E&198&0000', 'HID\VID_0079&PID_0006\7&5438EB5&19D&0000', 'HID\VID_0079&PID_0006\7&390C5738&17D&0000','HID\VID_0079&PID_0006\7&2652A693&16C&0000'
foreach ($pnpId in $pnpids) {
Disable-PnpDevice -InstanceId $pnpId -Confirm:$false
}
它在执行时工作正常,问题是在重新启动后 ID 的变化.. 在“&”字符之间的末尾只有 3 个字符发生变化(HID\VID_0079&PID_0006\7&1699A0E&198&0000 其余的保持不变。无论如何要为这 3 个字符使用通配符?
如果没有,有没有办法编写一个脚本来获取 USB 游戏杆的当前 InstanceID,然后使用我当前使用的脚本禁用/启用它们?远离我的联盟......
【问题讨论】:
-
尝试运行
Get-PnpDevice -Class 'USB'看看他们是否有FriendlyNames。然后使用这些来获取 InstanceID 的 -
您知道如何正确查看屏幕输出吗?实例 ID 正在被切断 - USB\VID_046D...
-
试试
Get-PnpDevice -Class 'USB' | Format-List -
谢谢,我把它输出到一个文本文件中。所以我看到这个例如 ID - USB\VID_046D&PID_C534\7&4096F64&1&5 但是当我尝试禁用时出现错误。我从右键单击属性中提取的实例 ID 显示 HID ...这可能是问题吗? HID\VID_0079&PID_0006\7&1699A0E&1A0&0000
-
HID 表示人机接口设备。我认为您尝试在那里禁用错误的设备
标签: arrays powershell scripting instanceid