Найти в Дзене
It-Assistant

PowerShell: примеры скриптов по сбору информации о компьютерах

Оглавление

PowerShell: примеры скриптов по сбору информации о компьютерах
PowerShell: примеры скриптов по сбору информации о компьютерах

Вывод параметров рабочего стола

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

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

Get-CimInstance -ClassName Win32_Desktop

Так как имена большинства этих свойств метаданных начинаются с Cim, эти свойства можно отфильтровать с помощью Select-Object. Укажите параметр -ExcludeProperty, используя «Cim*» как значение. Пример:

Get-CimInstance -ClassName Win32_Desktop | Select-Object -ExcludeProperty "CIM*"

Чтобы отфильтровать метаданные, используйте оператор конвейера (|) для отправки результатов команды Get-CimInstance в Select-Object -ExcludeProperty "CIM*".

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

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

Get-CimInstance -ClassName Win32_BIOS

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

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

Get-CimInstance -ClassName Win32_Processor | Select-Object -ExcludeProperty "CIM*"

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

Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -Property SystemType

SystemType

----------

X86-based PC

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

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

Get-CimInstance -ClassName Win32_ComputerSystem

Name PrimaryOwnerName Domain    TotalPhysicalMemory Model                   Manufacturer

---- ---------------- ------ ------------------- ----- ------------

MyPC Jane Doe         WORKGROUP 804765696 DA243A-ABA 6415cl NA910 Compaq Presario 06

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

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

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

Get-CimInstance -ClassName Win32_QuickFixEngineering

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

Source Description     HotFixID  InstalledBy   InstalledOn PSComputerName

------ ----------- -------- ----------- ----------- --------------

Security Update KB4048951 Administrator 12/16/2017 .

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

Get-CimInstance -ClassName Win32_QuickFixEngineering -Property HotFixID

InstalledOn :

Caption :

Description :

InstallDate :

Name :

Status :

CSName :

FixComments :

HotFixID : KB4533002

InstalledBy :

ServicePackInEffect :

PSComputerName :

CimClass : root/cimv2:Win32_QuickFixEngineering

CimInstanceProperties : {Caption, Description, InstallDate, Name…}

CimSystemProperties : Microsoft.Management.Infrastructure.CimSystemProperties

...

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

1

Get-CimInstance -ClassName Win32_QuickFixEngineering -Property HotFixId | Select-Object -Property HotFixId

Get-CimInstance -ClassName Win32_QuickFixEngineering -Property HotFixId | Select-Object -Property HotFixId

HotFixId

--------

KB4048951

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

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

Get-CimInstance -ClassName Win32_OperatingSystem |

Select-Object -Property BuildNumber,BuildType,OSType,ServicePackMajorVersion,ServicePackMinorVersion

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

Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object -Property Build*,OSType,ServicePack*

BuildNumber : 18362

BuildType : Multiprocessor Free

OSType : 18

ServicePackMajorVersion : 0

ServicePackMinorVersion : 0

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

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

Get-CimInstance -ClassName Win32_OperatingSystem |

Select-Object -Property NumberOfLicensedUsers,NumberOfUsers,RegisteredUser

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

Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object -Property *user*

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

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

Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3"

DeviceID DriveType ProviderName VolumeName Size         FreeSpace   PSComputerName

-------- --------- ------------ ---------- ---- --------- --------------

C: 3 Local Disk 203912880128 65541357568 .

Q: 3 New Volume 122934034432 44298250240 .

Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" |

Measure-Object -Property FreeSpace,Size -Sum |

Select-Object -Property Property,Sum

Property Sum

-------- ---

FreeSpace 109839607808

Size 326846914560

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

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

Get-CimInstance -ClassName Win32_LogonSession

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

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

Get-CimInstance -ClassName Win32_ComputerSystem -Property UserName

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

Сведения о текущем местном времени определенного компьютера можно получить с помощью класса Win32_LocalTime инструментария WMI.

Get-CimInstance -ClassName Win32_LocalTime

Day : 23

DayOfWeek : 1

Hour : 8

Milliseconds :

Minute : 52

Month : 12

Quarter : 4

Second : 55

WeekInMonth : 4

Year : 2019

PSComputerName :

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

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

Get-CimInstance -ClassName Win32_Service | Select-Object -Property Status,Name,DisplayName

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

Get-CimInstance -ClassName Win32_Service | Format-Table -Property Status,Name,DisplayName -AutoS

Источник