Представьте, что вы заходите в самое сердце огромного левиафана — в машинный зал, где с оглушительным грохотом вращаются массивные маховики, свистит перегретый пар, а сотни латунных шестеренок передают крутящий момент на центральный вычислительный вал. Чтобы этот исполин не взлетел на воздух, сисадмину необходимо посекундно знать состояние каждого узла. Каков сплав у главного котла? Какова частота вращения маятника? Какое клеймо выбил мастер на стальной станине?
Раньше для сбора этих данных инженеру приходилось ползать с гаечным ключом и масляным фонарем по десяткам WMI-классов, рискуя обжечься или сорвать резьбу. Но в современных версиях PowerShell (начиная с ревизии 5.1) появился монументальный инструмент — командлет Get-ComputerInfo. Это единый, отлитый из чистой бронзы диагностический пульт, который одним нажатием рычага собирает исчерпывающий чертеж всей системы.
Для боевого сисадмина Get-ComputerInfo — это незаменимый прибор экспресс-диагностики. Независимо от того, проводите ли вы плановый техосмотр локального терминала или удаленно подключаетесь к магистральному серверу по медным кабелям WinRM, эта команда выдаст вам детальный анатомический атлас машины: от версии прошивки BIOS (часового механизма материнской платы) до мельчайших параметров операционной системы и настроек безопасности.
📝 Синтаксис
Get-ComputerInfo [[-Property] <String[]>] [<CommonParameters>]Основные опции
По умолчанию командлет выбрасывает на экран гигантский ворох данных. Чтобы не утонуть в этом потоке мазута и искр, сисадмин использует фильтрующие заслонки и направляющие клапаны.
Сам по себе командлет Get-ComputerInfo — парень прямолинейный, у него всего один родной переключатель. Однако в сочетании с магистральным конвейером (|) он превращается в гибкий диагностический комплекс.
| Инструмент / Опция | Тип механизма | Описание | Пример использования |
**-Property** | Родной параметр | Главный селектор. Выуживает только специфические свойства по их именам или маскам с символом *. | Get-ComputerInfo -Property "OS*" |
**-ErrorAction** | Общий параметр | Аварийный глушитель. Позволяет проигнорировать мелкие сбои (например, значение SilentlyContinue), если датчик не может считать отдельный сектор данных. | Get-ComputerInfo -ErrorAction SilentlyContinue |
**| Select-Object** | Конвейерный калибратор | Используется для тонкой огранки. Вырезает из общего потока только строго заданные латунные пластины (свойства). | Get-ComputerInfo | Select-Object CsName, OsVersion |
**| Format-List** | Форматирующий свиток | Разворачивает скрытые и упакованные свойства в длинную, удобную для чтения вертикальную ленту. | Get-ComputerInfo | Format-List * |
**| Where-Object** | Клапан отсечки | Пропускает дальше по трубе только те данные, которые соответствуют вашему критическому условию. | Get-ComputerInfo | Where-Object {$_.OsArchitecture -eq "64-bit"} |
**| Export-Csv** | Накопитель чертежей | Направляет весь собранный массив данных в текстовый архив CSV для последующего анализа в штабе. | Get-ComputerInfo | Export-Csv -Path C:\BoilerReport.csv |
**| Get-Member** | Микроскоп инженера | Показывает типы данных и скрытые пружины (методы), из которых сконструирован возвращаемый объект. | Get-ComputerInfo | Get-Member |
ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ
1. Полная ревизия узлов (Генеральный осмотр котла)
Если вам нужно составить подробный рапорт для министерства путей сообщения о текущем состоянии сервера, запустите команду, развернув все параметры в бесконечный свиток. Так вы увидите абсолютно все заклепки на корпусе.
Get-ComputerInfo | Format-List *
2. Проверка часового механизма (BIOS) и часового пояса
Когда сервер начинает путать время подачи пара в цилиндры, сисадмин проверяет состояние его внутреннего хронометра — BIOS — и настройки текущей временной зоны.
Get-ComputerInfo -Property "Bios*", "WindowsTimeZone"3. Поиск ржавчины и износа (Проверка версии ОС и даты сборки)
Чтобы узнать, не устарели ли механизмы и когда последний раз смазывали шестеренки (устанавливали обновления), вычленим только паспортные данные операционной системы.
Get-ComputerInfo | Select-Object OsName, OsVersion, OsHardwareOrientedId, OsInstallDateИнженерная заметка: Взгляд на чужие верфи (Аналог showmount)
Пока Get-ComputerInfo скрупулезно изучает внутренности вашего собственного корабля, опытный сисадмин знает: машина не существует в вакууме. К ней подведены паровые магистрали и общие сетевые склады.
В смежных Unix-системах для осмотра внешних подключенных цистерн (NFS-экспортов) инженеры используют утилиту showmount. Например, команда showmount -e <имя_сервера> показывает список всех доступных сетевых отсеков, а showmount -a — фиксирует все активные подключения к ним.
Если на вашем Windows-сервере поднят клиент NFS, вы можете комбинировать локальный аудит Get-ComputerInfo с проверкой удаленных портов, чтобы убедиться, что латунные трубы локальной ОС надежно состыкованы с удаленными хранилищами данных.
💡 Совет
Не дергайте рычаг Get-ComputerInfo без лишней необходимости в циклических скриптах автоматизации! Этот командлет осуществляет глубокое сканирование и создает ощутимое давление в котле (нагрузку на процессор). Если вам нужно узнать всего один параметр (например, имя компьютера), гораздо быстрее и экономнее использовать старый добрый датчик среды: $env:COMPUTERNAME.
⚡ Важно
Помните, что эта механика требует PowerShell версии 5.1 или выше. Если вы попытаетесь запустить этот прибор на старых паровых машинах под управлением Windows Server 2008 с древним PowerShell 2.0, система выдаст критическую ошибку, так как в те времена этот диагностический блок еще не был отлит на заводах Редмонда. В старых системах используйте классическую команду systeminfo или механизмы Get-WmiObject.
⚙️ Машинное отделение ROADIT благодарит за прочтение.
Больше команд, шпаргалок и обзоров — на roadit.ru и в нашем Телеграф-канале.
📋 Все команды