您当前的位置: 首页 > 

寒冰屋

暂无认证

  • 3浏览

    0关注

    2286博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

在PowerShell中批量卸载设备

寒冰屋 发布时间:2022-02-17 21:30:54 ,浏览量:3

目录

介绍

使用代码

兴趣点

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

介绍

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

我想我应该把它贴在这里,以帮助其他试图删除大量设备的人,但无法找到一个解决方案。这适用于Windows 10、Windows 7和Windows 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

关注
打赏
1665926880
查看更多评论
立即登录/注册

微信扫码登录

0.0565s