11

Anyone know if an equivalent of lspci exists for Windows?

lspci is a really nice Linux command to list all the device info on the pci bus. This tells you exactly what chipsets are present in video, network, and audio devices. Since companies like Dell allow you to choose from a couple of different network and video options it would really help when trying to figure out how the system you're working on is configured when the system is missing drivers.

5 Answers 5

7

I don't know about a command that will do this, but there are a number of programs that will do this. My favorite is SIW. They have an installable version as well as a standalone version.

2
  • I tried this one out and it seems to do what I need. Thanks. I also found another one called SIV. rh-software.com SIW seems be a bit more professional but both are capable of identifying the chipsets on the PCI bus. You wonder why Windows Device manager can't manage to get you this information. "Unknown Network Device" doesn't help anyone get it working. Jan 18, 2010 at 0:53
  • Glad to help. You've got to love Merlin on the rh-software.com page. Ahhh... the good old days of Microsoft Agent. ;)
    – joeqwerty
    Jan 18, 2010 at 1:01
9

There is what seems to be an lspci (and setpci) port for Windows, which is awesome.

https://eternallybored.org/misc/pciutils/

Example to generate a system toplogy log in various verbosity:

echo lspci simple list > lspci_topo.log
lspci -M -nn >> lspci_topo.log
echo. >> lspci_topo.log

echo lspci tree >> lspci_topo.log
lspci -t -vv -nn >> lspci_topo.log
echo. >> lspci_topo.log

echo lspci detailed list >> lspci_topo.log
lspci -M -vv -nn >> lspci_topo.log
echo. >> lspci_topo.log

echo lspci AMD and Nvidia GPU raw hex config space >> lspci_topo.log
lspci -mm -d 1002: -v -xxx -nn >> lspci_topo.log
lspci -mm -d 1022: -v -xxx -nn >> lspci_topo.log
lspci -mm -d 10DE: -v -xxx -nn >> lspci_topo.log
4
  • 2
    Really nice to be able to compare how devices are set up in Windows and in Linux.
    – Rolf
    Apr 18, 2018 at 11:01
  • I tried this but it only shows motherboard devices. It does not show any PCI cards like GPU, NIC, or HBA
    – Elliott B
    Sep 3, 2020 at 20:24
  • @ElliottB you have to add additional switches to list the full tree of devices.
    – Kevin
    Mar 29, 2021 at 21:17
  • This was really useful for me - allowed me to (hopefully) find some information on what was causing lots of PCIe correctable error event logs Aug 23, 2021 at 14:23
6

As far I know, there is no way to do that in command line in windows.

Windows has Windows Management Instrumentation command line (wmic) where you could list processes and some hardware listing.

In order to identify hardware components I use HWiNFO freeware. I've been using it for 15 years for this purpose. It's a malware-free solution.

2
  • 5
    +1. I used wmic path win32_pnpentity where "deviceid like '%PCI%'" get name,deviceid, which I found here.
    – myrdd
    Jul 23, 2018 at 11:22
  • Indeed, wmic is how you work with WMI from command line. If you can do something via WMI, you can do this with wmic. Apr 17, 2019 at 10:43
2

There's a much easier, but little known, method that doesn't require any command line:

Open device manager (devmgmt.msc) -> View -> Devices by connection
1
  • Even better, View -> Show Hidden Devices. Still not a CLI alternative, but it ultimately got me what I needed, which was to find devices that didn't properly show in Device Manager because there was either a HW of FW issue with the device. (Mine turned out to be FW, which I only found this way.) Jan 4, 2022 at 15:00
1

Take a look at Win32_PnPEntity and Win32_Bus WMI classes:

PS C:\Users\Administrator> (gwmi Win32_Bus -Filter 'DeviceID like "PCI%"').GetRelated('Win32_PnPEntity').GetDeviceProperties('DEVPKEY_Device_LocationInfo').deviceProperties | ft data,DeviceID

data                             DeviceID
----                             --------
PCI bus 0, device 1, function 0  PCI\VEN_8086&DEV_7000&SUBSYS_00000000&REV_00\3&267A616A&0&08
PCI bus 0, device 4, function 0  PCI\VEN_80EE&DEV_CAFE&SUBSYS_00000000&REV_00\3&267A616A&0&20
PCI bus 0, device 13, function 0 PCI\VEN_8086&DEV_2829&SUBSYS_00000000&REV_02\3&267A616A&0&68
PCI bus 0, device 0, function 0  PCI\VEN_8086&DEV_1237&SUBSYS_00000000&REV_02\3&267A616A&0&00
PCI bus 0, device 3, function 0  PCI\VEN_1AF4&DEV_1000&SUBSYS_00011AF4&REV_00\3&267A616A&0&18
PCI bus 0, device 8, function 0  PCI\VEN_1AF4&DEV_1000&SUBSYS_00011AF4&REV_00\3&267A616A&0&40
PCI bus 0, device 9, function 0  PCI\VEN_1AF4&DEV_1000&SUBSYS_00011AF4&REV_00\3&267A616A&0&48
PCI bus 0, device 10, function 0 PCI\VEN_1AF4&DEV_1000&SUBSYS_00011AF4&REV_00\3&267A616A&0&50
PCI bus 0, device 16, function 0 PCI\VEN_1AF4&DEV_1000&SUBSYS_00011AF4&REV_00\3&267A616A&0&80
PCI bus 0, device 17, function 0 PCI\VEN_1AF4&DEV_1000&SUBSYS_00011AF4&REV_00\3&267A616A&0&88
PCI bus 0, device 18, function 0 PCI\VEN_1AF4&DEV_1000&SUBSYS_00011AF4&REV_00\3&267A616A&0&90
PCI bus 0, device 19, function 0 PCI\VEN_1AF4&DEV_1000&SUBSYS_00011AF4&REV_00\3&267A616A&0&98
PCI bus 0, device 2, function 0  PCI\VEN_80EE&DEV_BEEF&SUBSYS_00000000&REV_00\3&267A616A&0&10

More on this here.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .