Эквивалент lspci для Windows?

Вопрос или проблема

Кто-нибудь знает, существует ли эквивалент lspci для Windows?

lspci — это очень удобная команда Linux, которая перечисляет всю информацию о устройствах на шине pci. Она точно показывает, какие чипсеты присутствуют в видеоустройствах, сетевых и аудио. Поскольку компании, такие как Dell, позволяют выбирать из нескольких разных сетевых и видеопараметров, это действительно поможет, когда пытаетесь выяснить, как настроена система, с которой вы работаете, когда в системе отсутствуют драйверы.

Я не знаю команды, которая сделает это, но есть ряд программ, которые могут это сделать. Моя любимая — это SIW. У них есть версия для установки, а также модульная версия.

Существует, кажется, порт lspcisetpci) для Windows, что замечательно.

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

Пример для генерации журнала топологии системы с разной детализацией:

echo lspci простой список > lspci_topo.log
lspci -M -nn >> lspci_topo.log
echo. >> lspci_topo.log

echo lspci дерево >> lspci_topo.log
lspci -t -vv -nn >> lspci_topo.log
echo. >> lspci_topo.log

echo lspci детализированный список >> lspci_topo.log
lspci -M -vv -nn >> lspci_topo.log
echo. >> lspci_topo.log

echo lspci AMD и Nvidia GPU сырой hex конфиг пространство >> 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

Насколько я знаю, нет способа сделать это в командной строке в Windows.

В Windows есть Windows Management Instrumentation командная строка (wmic), где вы можете перечислить процессы и некоторые аппаратные списки.

Чтобы идентифицировать аппаратные компоненты, я использую HWiNFO бесплатное ПО. Я использую его в течение 15 лет для этой цели. Это решение без вредоносного ПО.

Есть гораздо более простой, но малоизвестный метод, который не требует командной строки:

Откройте диспетчер устройств (devmgmt.msc) -> Просмотр -> Устройства по подключению

Обратите внимание на классы WMI Win32_PnPEntity и Win32_Bus:

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

Подробнее об этом здесь.

У меня была та же необходимость, что и у автора поста, и я обнаружил, что lspci доступен на Windows с версии v2.1.99-test5.
Посмотрите на https://github.com/pciutils/pciutils.

Я скомпилировал его для версии на 64 бита на своем Ubuntu 22.04, и он может работать на Windows 11.

sudo apt update && sudo apt install mingw-w64
make CROSS_COMPILE=x86_64-w64-mingw32- HOST=x86_64-windows ZLIB=no IDSDIR=""

Это что-то, что отлично работает (и очень подробно) в недавних версиях PowerShell, я пробовал с v7.4:

Get-WmiObject -Class Win32_PnPEntity -Filter "PNPDeviceID LIKE 'PCI%'"

Ответ или решение

Эквивалент команды lspci в Windows

Команда lspci в Linux является полезным инструментом для отображения информации о всех устройствах, подключенных к шине PCI. Эта команда помогает точно определить чипсеты, используемые в различных устройствах, таких как видеокарты, сетевые адаптеры и аудиокарты. Пользователи Windows, желающие получить аналогичную информацию о своих системах, могут использовать несколько альтернатив.

1. Использование PowerShell

Одним из способов получения информации о устройствах PCI в Windows является использование PowerShell. В PowerShell можно выполнить следующую команду:

Get-WmiObject -Class Win32_PnPEntity -Filter "PNPDeviceID LIKE 'PCI%'"

Эта команда вернет список всех устройств, подключенных через шину PCI, детализируя их свойства. Использование PowerShell позволяет получить достаточно полное представление о конфигурации системы без необходимости установки дополнительных приложений.

2. Windows Management Instrumentation (WMI)

Таким образом, воспользовавшись WMI, можно получить доступ к классификации Win32_PnPEntity, чтобы получить информацию о всех связанных с устройствами устройствах. Также существует класс Win32_Bus, который можно использовать в сочетании с классом Win32_PnPEntity.

Пример использования в PowerShell:

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

Эта команда отображает данные о местоположении устройств на шине PCI.

3. Использование стороннего ПО

Если пользователю необходимо более удобное или графическое представление информации о PCI, можно использовать сторонние программы. Некоторые из наиболее популярных инструментов включают:

  • HWiNFO: Это бесплатная утилита, которая предоставляет детальную информацию о системе и оборудовании, включая PCI устройства. Она давно зарекомендовала себя как надежный инструмент и не содержит вредоносного ПО.

  • SIW (System Information for Windows): Эта программа предлагает комплексный анализ системы и может отображать информацию о подключенных устройствах.

  • PCI Utilities: Можно также использовать порты lspci для Windows из репозитория PCIUtils. Они предоставляют аналогичный функционал, включая такие команды, как lspci -nn, которые отражают идентификаторы устройств.

Ссылка на портированные средства можно найти здесь.

4. Диспетчер устройств

Для пользователей, предпочитающих графический интерфейс, можно воспользоваться встроенным инструментом – Диспетчером устройств. Чтобы открыть диспетчер устройств, выполните следующие шаги:

  1. Нажмите сочетание клавиш Win + R, введите devmgmt.msc и нажмите Enter.
  2. В меню выберите Вид, затем Устройства по подключению. Это позволит вам увидеть иерархическую структуру подключенных устройств, включая устройства PCI.

Заключение

Хоть Windows и не предоставляет встроенной команды, аналогичной lspci, существующие инструменты и сторонние программы позволяют пользователям получить подробную информацию о PCI устройствах в системе. Будь то через PowerShell, WMI, сторонние утилиты или графические интерфейсы, пользователи могут легко получить необходимые данные для диагностики и анализа оборудования.

Оцените материал
Добавить комментарий

Капча загружается...