0

我有一个工作脚本可以使用它们各自的 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,然后使用我当前使用的脚本禁用/启用它们?远离我的联盟这里..

4

1 回答 1

0

这是 Super User 的 Capt. Whale 的解决方案。谢谢!

 $pnpIds = 
  'HID\VID_0079&PID_0006\7&1699A0E&*&0000',
  'HID\VID_0079&PID_0006\7&5438EB5&*&0000',
  'HID\VID_0079&PID_0006\7&390C5738&*&0000',
  'HID\VID_0079&PID_0006\7&2652A693&*&0000'
  foreach ($pnpId in $pnpids) {
  Get-PnpDevice -InstanceID $pnpId | 
    Where Status -Like 'OK' |
      Disable-PnpDevice -Confirm:$false

}

启用- Enable-PnPDevice

然后替换 -Where Status -Like 'OK' 到 -Where Status -Like 'Error'

设备的状态将是“错误”,因为它已断开连接。

链接到解决方案的原始线程 - https://superuser.com/questions/1682707/script-to-disable-enable-pnp-device-using-instanceids-but-the-ids-change-upo

于 2021-10-20T21:45:32.183 回答