Как узнать серийный номер компьютера с помощью PowerShell в Windows 11
В Windows 11 команда wmic bios get serialnumber
, которая раньше часто использовалась для получения серийного номера компьютера, устарела и была удалена. Как же теперь получить эту информацию с помощью PowerShell? В этой статье разберём современные методы и их особенности.
Проблема
Раньше для получения серийного номера BIOS или материнской платы часто применяли инструмент wmic
. Однако в новых версиях Windows, особенно в Windows 11, этот инструмент либо удалён, либо не поддерживается. Поэтому необходимо использовать актуальные средства PowerShell для доступа к информации из WMI (Windows Management Instrumentation).
Вариант 1: Использование команды Get-CimInstance
Get-CimInstance
— современная и универсальная команда PowerShell, которая является полноценной заменой wmic
.
Чтобы узнать серийный номер BIOS, нужно обратиться к WMI-классу Win32_BIOS>. Полная команда выглядит так:
Get-CimInstance -ClassName Win32_BIOS | Select-Object -ExpandProperty SerialNumber
Для удобства и быстроты вы можете использовать сокращённый синтаксис:
gcim Win32_BIOS | select -ExpandProperty SerialNumber
Здесь gcim
— это псевдоним для Get-CimInstance
, который лучше применять интерактивно в консоли, а в скриптах рекомендуется использовать полное имя команды.
Полезный совет: Чтобы понять, какой WMI-класс соответствует команде wmic bios get serialnumber
, можно использовать такую команду:
wmic.exe alias list brief | Select-String BIOS -SimpleMatch
В результате вы увидите, что wmiс bios
фактически обращался к классу Win32_BIOS
.
Вариант 2: Использование Get-ComputerInfo
Другой способ — команда Get-ComputerInfo
, которая выводит огромное количество информации о системе, включая серийный номер BIOS:
Get-ComputerInfo | Select-Object -Property BiosSerialNumber
Если вы запускаете команду интерактивно (не в скрипте), можно просто вызвать Get-ComputerInfo
и пролистать вывод до строки с серийным номером BIOS.
Недостаток: в отличие от Get-CimInstance
, Get-ComputerInfo
собирает большое количество данных, что может замедлить выполнение команды и усложнить обработку вывода. Поэтому этот вариант больше подходит для разовых проверок.
Вариант 3: Получение серийного номера материнской платы
Иногда интересно узнать не серийный номер BIOS, а именно материнской платы (платы с печатной платой — PCB). В этом случае используется класс Win32_BaseBoard>:
Get-CimInstance Win32_BaseBoard | Select-Object -ExpandProperty SerialNumber
Или упрощённый вызов:
(Get-CimInstance Win32_BaseBoard).SerialNumber
Это полезно, когда нужно получить серийный номер физического оборудования, а не прошивки BIOS.
Обзор подходов и рекомендации
- Get-CimInstance (Win32_BIOS) — наиболее современный и гибкий метод, отлично подходит для скриптов и автоматизации.
- Get-ComputerInfo — удобен для разовых ручных проверок, но избыточен для простых запросов серийного номера.
- Get-CimInstance (Win32_BaseBoard) — для получения серийного номера именно материнской платы, если это требуется.
Если вы планируете работать с серийным номером в скриптах или автоматизации, лучше использовать Get-CimInstance
с соответствующим классом. Для одноразовых быстрых проверок вполне подойдёт Get-ComputerInfo
.
Выводы
Команда wmic
была удобной, но сейчас устарела. Чтобы узнать серийный номер компьютера в Windows 11 через PowerShell, используйте Get-CimInstance
. Для BIOS применяйте класс Win32_BIOS
, для материнской платы — Win32_BaseBoard
. Если требуется только быстро посмотреть данные вручную, поможет Get-ComputerInfo
, но для скриптов он избыточен.
Так вы получите актуальный и безопасный способ получения серийного номера без использования устаревших инструментов.