我有一个工作脚本可以使用它们各自的 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,然后使用我当前使用的脚本禁用/启用它们?远离我的联盟这里..
你可以!最好的起点是 just
Get-PnpDevice
,以确保您只选择您期望的设备:然后你可以使用基本相同的脚本(我猜测通配符的位置):
您不能在 中使用通配符
Disable-PnpDevice
,但它会禁用通过管道传输的任何设备,包括多个设备的列表,因此请注意不要意外禁用任何内容。Get-PnpDevice
也可以使用通配符进行搜索,-FriendlyName
或者-Class
如果这样更容易。