通过PowerShell命令批量删除蓝牙设备
通过PowerShell命令批量删除蓝牙设备
Get-PnpDevice | Where-Object {$_.FriendlyName -like "*需删除设备*"} | ForEach-Object{pnputil.exe /remove-device $_.InstanceId }
- 使用管理员身份打开
PowerShell - 将"需删除设备"换成具体的设备名称,两个
*说明是宽泛搜索,设备名称的前面匹配任意字符,后面匹配任意字符。
背景
一天,打开电脑蓝牙,发现在其他设备一栏里莫名其妙地出现了一堆奇奇怪怪的设备,由于没有多选删除功能,只能一个一个地选择然后删除设备,低效且繁琐。于是使用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命令:
Get-PnpDevice,获取系统中安装的PnP设备。Where-Object,从传入的对象集合中选择具有特定属性值的对象。ForEach-Object,对输入对象集合中的每个项执行操作。$_,表示当前变量
解释命令
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,用于唯一标识设备。
使用管道|传输数据

浙公网安备 33010602011771号