如何在设备管理器中批量删除所有隐藏设备?(单个设备的示例 PowerShell 脚本)

如何在设备管理器中批量删除所有隐藏设备?(单个设备的示例 PowerShell 脚本)

因此不久前我把它们放在一起以清除设备然后重新扫描:

$deviceName="Insert Device Name Here"
foreach ($dev in (Get-PnpDevice | Where-Object{$_.Name -eq $deviceName})) {
  &"pnputil" /remove-device $dev.InstanceId 
}

pnputil.exe /scan-devices

我用它来处理故障的 USB 设备,我让这个脚本运行,它从设备管理器中删除了它能找到的每个 USB 设备,然后重新扫描硬件,这样连接的设备就可以重新开始工作了。(这很棒,因为它甚至可以卸载鼠标和键盘驱动程序,然后在重新扫描时重新安装它们;如果我不这样做,那么我就必须强制重启,这绝不是一件好事。)

现在我想看看能不能做点别的。我读到过,有时候“隐藏”设备的驱动程序如果过时了,可能会导致问题,所以我想看看是否有办法使用这个(或类似的东西)来做到这一点?通过展开每个类别来手动完成这件事很乏味。

答案1

找到了答案:https://github.com/istvans/scripts/blob/master/removeGhosts.ps1

此脚本具有一些选项,可让您查看系统上的“幽灵”设备而无需移除它们、仅移除其中的某些设备(您可以通过关键字缩小范围)或移除所有设备。如果其他人有与我相同的问题,这就是您的操作方法。我已经在我的两个系统上测试过它,一个运行 Windows 10,另一个运行 Windows 11,它确实有效。

相关内容