Получение сведений о компьютерах

Get-WmiObject — самый важный командлет для общих задач управления системой. Все ключевые настройки подсистемы доступны через службу WMI. Более того, служба WMI обрабатывает данные как объекты, сгруппированные в коллекции из одного или нескольких элементов. Поскольку оболочка Windows PowerShell также работает с объектами, в ней имеется конвейер, позволяющий одинаково обрабатывать отдельный объект или несколько объектов, общий доступ к службе WMI предоставляет возможность выполнять некоторые сложные задачи с небольшими затратами усилий.

В следующем примере показано, как собрать определенные сведения, применяя командлет Get-WmiObject к произвольному компьютеру. Значение параметра ComputerName задается точкой ., представляющей локальный компьютер. Здесь можно указать имя или IP-адрес, связанные с любым компьютером, к которому требуется получить доступ через службу WMI. Чтобы получить сведения о локальном компьютере, параметр -ComputerName. можно опустить.

Вывод настроек рабочего стола

Для начала рассмотрим команду, собирающую сведения о рабочих столах локального компьютера:

Эта команда возвращает сведения обо всех рабочих столах, вне зависимости от их использования.

Примечание.
Сведения, возвращаемые некоторыми классами WMI, могут быть очень подробными и часто содержат метаданные о классе WMI. Поскольку имена большинства этих свойств метаданных начинаются двойным знаком подчеркивания, эти свойства можно отфильтровать с помощью командлета Select-Object. Чтобы выбрать свойства, начинающиеся с буквы, для параметра Property следует указать [a-z]*. Пример.

Чтобы отфильтровать метаданные, направьте результаты команды Get-WmiObject команде Select-Object -Property [a-z]* с помощью оператора конвейера (|).

Вывод сведений о BIOS

Класс WMI Win32_BIOS возвращает довольно компактные и полные сведения о системной BIOS локального компьютера.

Вывод сведений о процессоре

Общие сведения о процессоре можно получить с помощью класса Win32_Processor службы WMI, однако пользователю наверняка потребуется отфильтровать полученные данные.

Чтобы получить общую строку описания семейства процессора, достаточно вернуть свойство Win32_ComputerSystem SystemType:

Вывод производителя и модели компьютера

Сведения о модели компьютера так же доступны в классе Win32_ComputerSystem. Чтобы получить данные изготовителя оборудования (OEM), стандартный отображаемый вывод фильтровать не нужно.

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

Вывод установленных исправлений

Список всех установленных исправлений можно получить с помощью класса Win32_QuickFixEngineering:

Этот класс возвращает список исправлений, представленный в следующем виде:

Для получения более кратких сведений нужно исключить некоторые свойства. Параметр Get-WmiObject Property позволяет выбрать только идентификаторы HotFixID, однако на самом деле выполнение этой команды возвращает больше данных, поскольку по умолчанию отображаются все метаданные.

Дополнительные данные выводятся, поскольку параметр Property командлета Get-WmiObject ограничивает свойства, возвращаемые из экземпляров класса, но не объекты, возвращаемые оболочке Windows PowerShell. Командлет Select-Object позволяет сократить возвращаемый вывод:

Вывод сведений о версии операционной среды

Свойства класса Win32_OperatingSystem включают сведения о версии операционной среды и пакета обновлений. Эти свойства можно выбрать явным образом, чтобы из класса Win32_OperatingSystem получить сводные данные о версиях:

С параметром Select-Object Property можно использовать подстановочные символы. Поскольку в рассматриваемом случае важны все свойства, имена которых начинаются с Build либо с ServicePack, указанную строку можно сократить:

Вывод локальных пользователей и владельца

Общие сведения о локальных пользователях — количество зарегистрированных пользователей, текущее число пользователей и имя владельца — можно получить, выбрав соответствующие свойства класса Win32_OperatingSystem. Отображаемые свойства можно указать явным образом:

В более сжатом варианте используются знаки подстановки:

Получение сведений о доступном месте на диске

Чтобы получить сведения о дисковом пространстве и свободном месте на всех локальных дисках, можно воспользоваться классом Win32_LogicalDisk службы WMI. Для просмотра следует выбрать только те экземпляры, у которых свойство DriveType принимает значение 3, — значение, используемое службой WMI для постоянных жестких дисков.

Получение сведений о сеансах подключения

Общие сведения о сеансах подключения, связанных с пользователями, можно получить через класс Win32_LogonSession службы WMI:

Получение сведений о пользователе, подключенном к компьютеру

Имя пользователя, подключенного к определенной компьютерной системе, можно отобразить с помощью класса Win32_ComputerSystem. Приведенная ниже команда возвращает только пользователей, подключенных к рабочему столу системы:

Получение сведений о местном времени компьютера

Данные о текущем местном времени определенного компьютера можно получить с помощью класса Win32_LocalTime службы WMI. Поскольку этот класс по умолчанию отображает все метаданные, пользователю может потребоваться фильтрация с помощью командлета Select-Object:

Отображение состояния службы

Для просмотра состояния всех служб на определенном компьютере можно локально воспользоваться командлетом Get-Service, как было показано ранее. Для удаленных систем можно использовать класс Win32_Service службы WMI. Если использовать команду Select-Object для получения результатов Status, Name и DisplayName, формат вывода будет идентичен формату вывода командлета Get-Service:

Чтобы полностью отобразить службы с очень длинными именами, может потребоваться использование командлета Format-Table с параметрами AutoSize и Wrap, позволяющими оптимизировать ширину столбцов и переносить длинные имена на следующие строки вместо их усечения.

взято тут