通过PowerShell命令批量删除蓝牙设备

通过PowerShell命令批量删除蓝牙设备

Get-PnpDevice | Where-Object {$_.FriendlyName -like "*需删除设备*"} | ForEach-Object{pnputil.exe /remove-device $_.InstanceId }
  1. 使用管理员身份打开PowerShell
  2. 将"需删除设备"换成具体的设备名称,两个*说明是宽泛搜索,设备名称的前面匹配任意字符,后面匹配任意字符。

背景

一天,打开电脑蓝牙,发现在其他设备一栏里莫名其妙地出现了一堆奇奇怪怪的设备,由于没有多选删除功能,只能一个一个地选择然后删除设备,低效且繁琐。于是使用pnputil.exe进行删除。

pnputil.exe 是一个Windows系统工具,用于管理Windows操作系统中的即插即用(Plug and Play, PnP)设备和驱动程序。以下是 pnputil.exe 提供的一些常见功能:

列出所有PnP设备:

pnputil.exe /enum-devices

列出所有驱动程序:

pnputil.exe /enum-drivers

添加驱动程序(需要驱动程序的INF文件路径):

pnputil.exe /add-driver "驱动程序的INF文件路径"

删除驱动程序(需要驱动程序的INF文件名):

pnputil.exe /delete-driver "驱动程序的INF文件名" /uninstall

删除设备(需要设备的实例ID):

pnputil.exe /remove-device "设备的实例ID"

由于蓝牙设备属于PnP设备,所以可以使用pnputil.exe进行批量处理。


使用的PowerShell命令:

  1. Get-PnpDevice,获取系统中安装的PnP设备。
  2. Where-Object,从传入的对象集合中选择具有特定属性值的对象。
  3. ForEach-Object,对输入对象集合中的每个项执行操作。
  4. $_,表示当前变量

解释命令

Get-PnpDevice | Where-Object {$_.FriendlyName -like "*需删除设备*"} | ForEach-Object{pnputil.exe /remove-device $_.InstanceId }

获取安装的PnP设备列表(集合A),从集合A 中筛选出包含“需删除设备” 字符串的设备列表(集合B),对集合B 的每项执行删除命令。

Get-PnpDevice:这个命令获取系统中安装的PnP设备。

Where-Object {$_.FriendlyName -like "*需删除设备*"}:这个部分会筛选出FriendlyName中包含 “需删除设备” 字符串的设备。$_ 代表管道中的当前对象,FriendlyName 这个属性是PnP设备对象的名称。

ForEach-Object{pnputil.exe /remove-device $_.InstanceId }:对于每个匹配的设备,这将执行 pnputil.exe 命令,并使用 /remove-device 参数,后面跟着设备的实例ID, InstanceId这个属性是设备的实例ID,用于唯一标识设备。

使用管道|传输数据

posted @ 2024-12-30 15:33  末雨摸鱼  阅读(730)  评论(0)    收藏  举报