在PowerShell中批量卸载设备

目录

介绍

使用代码

兴趣点


此提示详细介绍了在PowerShell中从Windows系统批量删除即插即用设备所需的步骤。该脚本旨在删除安装了多个副本的设备,但可以进行调整以适应其他条件。它需要PowerShell ISEpnputil.exe才能工作。

介绍

最近在对Windows设备进行故障排除时,我发现在我的一些系统上安装了数百个多媒体设备副本。我想摆脱所有这些重复项,但GUI一次只允许卸载一个设备。手动执行此操作将是一个非常耗时的过程。在互联网上搜索了一种一次性删除它们的方法并且只是反复看到它无法完成(或其他无用的建议)后,我在Powershell中提出了这个解决方案,效果很好。

我想我应该把它贴在这里,以帮助其他试图删除大量设备的人,但无法找到一个解决方案。这适用于Windows 10Windows 7Windows 8,尽管我还没有在这些平台上尝试过。

使用代码

该脚本可以在单个命令中执行,但为了清楚起见,我将其分解为几个脚本行。它不必作为.PS1脚本运行,但它似乎只适用于PowerShell ISE

要卸载具有给定名称的所有设备,请使用以下脚本:

$deviceName="Name of the device(s) you want to remove"
foreach ($dev in (Get-PnpDevice | Where-Object{$_.Name -eq $deviceName})) {
  &"pnputil" /remove-device $dev.InstanceId 
}

或者作为单个命令:

foreach ($dev in (Get-PnpDevice | Where-Object{$_.Name -eq "Name of device to remove")) 
{ &"pnputil" /remove-device $dev.InstanceId }

就是这样!

兴趣点

还有其他方法可以枚举和过滤设备(例如Get-WmiObject),但这是我发现也适用于隐藏设备的唯一方法。

https://www.codeproject.com/Tips/5313040/Batch-Uninstall-Devices-in-PowerShell

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值