You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过位置路径查找对应PCI设备(Windows环境)

如何通过位置路径查找对应PCI设备(Windows环境)

嘿,我来帮你搞定这个问题!你之前的命令失败是因为直接把位置路径片段当成设备实例ID来用了——系统里的设备InstanceId格式和位置路径完全不同,不能直接截取位置路径的部分来查询。

下面给你几个靠谱的方法,不管用PowerShell还是手动操作都能找到目标PCI设备:

方法一:用PowerShell快速筛选匹配的设备

这条命令会遍历所有当前连接的设备,找出位置信息包含PCIROOT(0)#PCI(1400)的设备,直接输出它的名称、实例ID和完整位置路径:

Get-PnpDevice -PresentOnly | Where-Object { $_.Location -like "*PCIROOT(0)#PCI(1400)*" } | Select-Object FriendlyName, InstanceId, Location

如果输出结果里有多个设备,优先看“FriendlyName”里带“PCI”或“USB控制器”相关的条目,那就是你要找的父PCI设备。

方法二:精准匹配位置路径属性

如果上面的命令没找到,或者你需要更精准的结果,可以用这个遍历所有设备位置路径属性的脚本:

Get-PnpDevice -PresentOnly | ForEach-Object {
    # 尝试获取当前设备的位置路径属性
    $locationProps = Get-PnpDeviceProperty -InstanceId $_.InstanceId -KeyName DEVPKEY_Device_LocationPaths -ErrorAction SilentlyContinue
    # 如果属性存在且包含目标路径片段,就输出设备信息
    if ($locationProps -and $locationProps.Data -like "*PCIROOT(0)#PCI(1400)*") {
        [PSCustomObject]@{
            设备名称 = $_.FriendlyName
            实例ID = $_.InstanceId
            完整位置路径 = $locationProps.Data
        }
    }
}

这个脚本会逐个检查设备的位置路径属性,确保不会漏掉任何匹配的设备。

方法三:手动在设备管理器中查找

如果你不想用PowerShell,也可以手动操作:

  1. 打开设备管理器,展开**“PCI Express Root Complex”或者“通用串行总线控制器”**分类(因为你的蓝牙设备是USB子设备,父PCI设备大概率是USB控制器);
  2. 逐个右键点击分类下的设备,选择「属性」→「详细信息」;
  3. 在“属性”下拉菜单中选择「位置路径」,查看是否包含PCIROOT(0)#PCI(1400)
  4. 找到匹配的那个设备,就是你要找的目标PCI设备啦。

备注:内容来源于stack exchange,提问作者stackbiz

火山引擎 最新活动