通过PowerShell获取蓝牙适配器LMP版本的方法
问题
已尝试排查 CIM_NetworkAdapter、Get-NetAdapterAdvancedProperty、CIM_LogicalDevice、Win32_PnPDevice 等相关WMI类与PowerShell命令,均未找到蓝牙LMP版本的对应获取路径。需要找到方法从蓝牙适配器高级属性的「蓝牙无线电信息」条目中提取LMP版本,确认是否可通过注册表编辑器或其他系统方式实现该需求。
解决方案
无需手动查找注册表,直接通过PowerShell读取PnP设备内置属性即可获取,可直接运行的代码如下:
$BTDevices = Get-PnpDevice -Class "Bluetooth" Foreach ($device in $BTDevices) { $BTDeviceProperty = Get-PnpDeviceProperty -KeyName "DEVPKEY_Bluetooth_RadioLmpVersion" -InstanceId $device.InstanceID If ($BTDeviceProperty -And $BtDeviceProperty.Data) { $bluetoothVersion = Switch ($BTDeviceProperty.Data) { 0 { '1.0b' } 1 { '1.1' } 2 { '1.2' } 3 { '2.0 + EDR' } 4 { '2.1 + EDR' } 5 { '3.0 + HS' } 6 { '4.0' } 7 { '4.1' } 8 { '4.2' } 9 { '5.0'} 10 { '5.1' } 11 { '5.2' } default { "UNKNOWN" } } } } Write-Host $bluetoothVersion
代码运行逻辑:
- 枚举系统内所有归类为蓝牙的PnP设备
- 针对每个设备直接读取系统内置的
DEVPKEY_Bluetooth_RadioLmpVersion属性键值,拿到LMP版本的数字编码 - 按照蓝牙官方版本对应规则将数字编码映射为通用版本名称,最终输出结果
内容的提问来源于stack exchange,提问作者Steven
相关产品推荐
相关产品推荐

