有没有办法使用 powershell(Win10)识别设备的 PCIE 速度?

有没有办法使用 powershell(Win10)识别设备的 PCIE 速度?

这样我就可以确定设备的传输速率并将其与 PCIE 设备的代数(PCIE 3.0、4.0 等)联系起来

答案1

此方法使用 WMI 总线 PnP 设备驱动程序属性

# Get all devices related to PCI BUS 
$pciStats = (Get-WMIObject Win32_Bus -Filter 'DeviceID like "PCI%"').GetRelated('Win32_PnPEntity') | 
  foreach {
    # request connection properties from wmi
    [pscustomobject][ordered]@{
      Name = $_.Name
      ExpressSpecVersion=$_.GetDeviceProperties('DEVPKEY_PciDevice_ExpressSpecVersion').deviceProperties.data
      MaxLinkSpeed      =$_.GetDeviceProperties('DEVPKEY_PciDevice_MaxLinkSpeed'      ).deviceProperties.data
      MaxLinkWidth      =$_.GetDeviceProperties('DEVPKEY_PciDevice_MaxLinkWidth'      ).deviceProperties.data
      CurrentLinkSpeed  =$_.GetDeviceProperties('DEVPKEY_PciDevice_CurrentLinkSpeed'  ).deviceProperties.data
      CurrentLinkWidth  =$_.GetDeviceProperties('DEVPKEY_PciDevice_CurrentLinkWidth'  ).deviceProperties.data
    } |
    # only keep devices with PCI connections
    Where MaxLinkSpeed
  }
$pciStats | Format-Table -AutoSize

我的电脑上显示了如下表格:

Name                             ExpressSpecVersion MaxLinkSpeed MaxLinkWidth CurrentLinkSpeed CurrentLinkWidth
----                             ------------------ ------------ ------------ ---------------- ----------------
High Definition Audio Controller                  2            4           16                3               16
NVIDIA GeForce RTX 3070                           2            4           16                3               16
Intel(R) Dual Band Wireless-AC 8                  2            1            1                1                1
ASMedia USB 3.1 eXtensible Host                   2            3            2                3                2
Standard NVM Express Controller                   2            3            4                3                4

ExpressSpecVersion属性是 PCIe 版本,其中 PCIe 1.0 =0和 PCIe 3.0 =2等。其他属性的整数值并不难找到,只需通过谷歌搜索其驱动程序键名称即可,例如DEVPKEY_PciDevice_MaxLinkSpeed

这些属性适用于命名的设备,并且不是主板上的 PCI 插槽。WMI 似乎没有列举有关 pci 端口的信息,尤其是断开连接的端口。

相关内容