如何通过Get-PnpDevice仅提取指纹传感器的特定硬件输出?
解决方案
你可以通过精准过滤设备名称并提取目标字符串来实现需求,修改后的脚本如下:
# 筛选Biometric类中名称包含Synaptics的设备,提取"Synaptics" $Biometric = Get-PnpDevice | Where-Object { $_.Class -eq 'Biometric' -and $_.FriendlyName -match '^Synaptics' } | ForEach-Object { if ($_.FriendlyName -match 'Synaptics') { $matches[0] } } | Out-String if ($Biometric.Trim()) { $BiometricOK = "Biometric" } else { $Biometric = "Not found" | Out-String } # 可选:输出结果用于验证 $Biometric.Trim()
关键改动:
- 精准设备过滤:新增
-and $_.FriendlyName -match '^Synaptics'条件,只匹配以Synaptics开头的指纹传感器,自动排除Windows Hello设备 - 目标字符串提取:通过正则匹配直接取出"Synaptics",替代原有的完整设备名称输出
- 空值判断优化:用
$Biometric.Trim()避免空白字符串导致的误判 - 兼容原有逻辑:保留
$BiometricOK变量的赋值逻辑,确保和原有脚本流程适配
测试时,脚本会直接输出Synaptics;如果未找到Synaptics指纹传感器,则输出Not found。
内容的提问来源于stack exchange,提问作者Pyro
相关产品推荐
相关产品推荐

