PowerShell中如何通过deviceid子串获取完整实例ID
PowerShell查询实例ID包含指定子串的设备列表方案
核心实现命令
你要的筛选逻辑可以直接用以下单行命令实现:Get-PnpDevice | Where-Object { $_.InstanceId -like '*USB\234FA*' }
逻辑说明
Get-PnpDevice是PowerShell内置的即插即用设备查询命令,会返回当前系统所有识别到的PnP设备对象Where-Object是筛选管道,只有满足大括号内条件的设备才会被保留$_.InstanceId指代当前遍历到的设备的实例ID属性-like是通配符匹配运算符,前后添加*代表匹配任意位置包含目标子串的内容,完全符合你要求的「包含指定子串」的筛选逻辑
常用优化写法
如果只需要查看设备的核心信息(比如设备名、实例ID、运行状态),可以在末尾追加字段筛选:Get-PnpDevice | Where-Object { $_.InstanceId -like '*USB\234FA*' } | Select-Object FriendlyName, InstanceId, Status
注意事项
- 若需要匹配以指定子串开头的实例ID,删除命令中目标子串前的
*即可:$_.InstanceId -like 'USB\234FA*' - 部分系统级设备需要管理员权限才能读取完整属性,若返回结果不全,右键点击PowerShell选择「以管理员身份运行」后重新执行命令即可
- 子串中的反斜杠等特殊字符不需要额外转义,
-like运算符可直接识别匹配
内容的提问来源于stack exchange,提问作者Ehsan Sharifi Esfahani
相关产品推荐
相关产品推荐

