You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

重启后USB操纵杆InstanceID变动 如何调整PnP禁用脚本可正常运行

问题1:是否可以使用通配符匹配变动的InstanceID?

可以,Disable-PnpDevice的-InstanceId参数原生支持*通配符,你提到的变动3位字符可以直接用通配符代替,简化后的禁用脚本如下:

Disable-PnpDevice -InstanceId 'HID\VID_0079&PID_0006\7&*&0000' -Confirm:$false

这个脚本会直接匹配所有符合前缀和后缀规则的4个操纵杆设备,执行批量禁用。


问题2:先获取当前InstanceID再操作的实现方案

如果担心通配符误匹配其他设备,可以先枚举系统中的PNP设备,筛选出符合规则的操纵杆实例后再执行操作,可控性更高,同时也支持禁用/启用两种需求:

禁用脚本

# 筛选匹配规则的USB操纵杆设备
$targetJoysticks = Get-PnpDevice | Where-Object {
    $_.InstanceId -match '^HID\\VID_0079&PID_0006\\7&.*&0000$'
}

# 批量禁用
foreach ($dev in $targetJoysticks) {
    Disable-PnpDevice -InstanceId $dev.InstanceId -Confirm:$false
    Write-Host "已禁用设备:$($dev.FriendlyName),实例ID:$($dev.InstanceId)"
}

启用脚本

# 筛选匹配规则的USB操纵杆设备
$targetJoysticks = Get-PnpDevice | Where-Object {
    $_.InstanceId -match '^HID\\VID_0079&PID_0006\\7&.*&0000$'
}

# 批量启用
foreach ($dev in $targetJoysticks) {
    Enable-PnpDevice -InstanceId $dev.InstanceId -Confirm:$false
    Write-Host "已启用设备:$($dev.FriendlyName),实例ID:$($dev.InstanceId)"
}

注意事项
  • 所有脚本必须以管理员身份运行,否则没有修改设备状态的系统权限
  • 可先单独执行筛选命令Get-PnpDevice | Where-Object {$_.InstanceId -match '^HID\\VID_0079&PID_0006\\7&.*&0000$'}验证输出的设备列表是否为你要操作的4个操纵杆,确认无误后再执行后续操作

内容的提问来源于stack exchange,提问作者drewjbx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 23:45:03