Get-WmiObject
Получает экземпляры классов инструментария управления Windows (WMI) или сведения о доступных классах.
Синтаксис
Get-WmiObject
[-Class] <String>
[[-Property] <String[]>]
[-Filter <String>]
[-Amended]
[-DirectRead]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[[-Class] <String>]
[-Recurse]
[-Amended]
[-List]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-DirectRead]
-Query <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Описание
Начиная с PowerShell 3.0, этот командлет был заменен на Get-CimInstance
.
Командлет Get-WmiObject
получает экземпляры классов WMI или сведения о доступных классах WMI. Чтобы указать удаленный компьютер, используйте параметр ComputerName. Если указан параметр List, командлет получает сведения о классах WMI, доступных в указанном пространстве имен. Если указан параметр Query, командлет запускает инструкцию языка запросов WMI (WQL).
Командлет Get-WmiObject
не использует Windows PowerShell удаленного взаимодействия для выполнения удаленных операций.
Параметр ComputerName командлета можно использовать, даже если компьютер не соответствует требованиям для Windows PowerShell удаленного взаимодействия или не настроен для удаленного Get-WmiObject
взаимодействия в Windows PowerShell.
Начиная с Windows PowerShell 3.0 свойство __Server возвращаемого Get-WmiObject
объекта имеет псевдоним PSComputerName. Это упрощает включение имени исходного компьютера во входные данные и отчеты.
Примеры
Пример 1. Получение процессов на локальном компьютере
В этом примере показано, как получить процессы на локальном компьютере.
Get-WmiObject -Class Win32_Process
Пример 2. Получение служб на удаленном компьютере
В этом примере возвращаются службы на удаленном компьютере. Параметр ComputerName указывает IP-адрес удаленного компьютера. По умолчанию учетная запись текущего пользователя должна быть членом группы "Администраторы" на удаленном компьютере.
Get-WmiObject -Class Win32_Service -ComputerName 10.1.4.62
Пример 3. Получение классов WMI в корневом или стандартном пространстве имен локального компьютера
В этом примере возвращаются классы WMI в корневом или стандартном пространстве имен локального компьютера.
Get-WmiObject -Namespace "root/default" -List
Пример 4. Получение именованной службы на нескольких компьютерах
В этом примере возвращается служба WinRM на компьютерах, указанных значением параметра ComputerName .
Get-WmiObject -Query "select * from win32_service where name='WinRM'" -ComputerName Server01, Server02 |
Format-List -Property PSComputerName, Name, ExitCode, Name, ProcessID, StartMode, State, Status
PSComputerName : SERVER01
Name : WinRM
ExitCode : 0
Name : WinRM
ProcessID : 844
StartMode : Auto
State : Running
Status : OK
PSComputerName : SERVER02
Name : WinRM
ExitCode : 0
Name : WinRM
ProcessID : 932
StartMode : Auto
State : Running
Status : OK
Оператор конвейера (|) отправляет выходные данные командлету Format-List
, который добавляет свойство PSComputerName в выходные данные по умолчанию. PSComputerName — это псевдоним свойства __Server возвращаемых Get-WmiObject
объектов. Этот псевдоним появился в PowerShell 3.0.
Пример 5. Остановка службы на удаленном компьютере
В этом примере служба WinRM останавливается на удаленном компьютере. Get-WmiObject
получает экземпляр объекта службы WinRM на сервере Server01. Затем он вызывает метод StopServiceкласса WMI Win32_Service для этого объекта.
(Get-WmiObject -Class Win32_Service -Filter "name='WinRM'" -ComputerName Server01).StopService()
Это эквивалентно использованию командлета Stop-Service
.
Пример 6. Получение BIOS на локальном компьютере
Этот пример получает сведения о BIOS с локального компьютера. Параметр Property командлета Format-List
используется для отображения всех свойств возвращаемого объекта в списке. По умолчанию отображается только подмножество свойств, определенных Types.ps1xml
в файле конфигурации.
Get-WmiObject -Class Win32_Bios | Format-List -Property *
Status : OK
Name : Phoenix ROM BIOS PLUS Version 1.10 A05
Caption : Phoenix ROM BIOS PLUS Version 1.10 A05
SMBIOSPresent : True
__GENUS : 2
__CLASS : Win32_BIOS
__SUPERCLASS : CIM_BIOSElement
__DYNASTY : CIM_ManagedSystemElement
__RELPATH : Win32_BIOS.Name="Phoenix ROM BIOS PLUS Version 1.10
__PROPERTY_COUNT : 27
__DERIVATION : {CIM_BIOSElement, CIM_SoftwareElement, CIM_LogicalElement,
__SERVER : Server01
__NAMESPACE : root\cimv2
__PATH : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
BiosCharacteristics : {7, 9, 10, 11...}
BIOSVersion : {DELL - 15, Phoenix ROM BIOS PLUS Version 1.10 A05}
BuildNumber :
CodeSet :
CurrentLanguage : en|US|iso8859-1
Description : Phoenix ROM BIOS PLUS Version 1.10 A05
IdentificationCode :
InstallableLanguages : 1
InstallDate :
LanguageEdition :
ListOfLanguages : {en|US|iso8859-1}
Manufacturer : Dell Inc.
OtherTargetOS :
PrimaryBIOS : True
ReleaseDate : 20101103000000.000000+000
SerialNumber : 8VDM9P1
SMBIOSBIOSVersion : A05
SMBIOSMajorVersion : 2
SMBIOSMinorVersion : 6
SoftwareElementID : Phoenix ROM BIOS PLUS Version 1.10 A05
SoftwareElementState : 3
TargetOperatingSystem : 0
Version : DELL - 15
Scope : System.Management.ManagementScope
Path : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
Options : System.Management.ObjectGetOptions
ClassPath : \\JUNE-PC\root\cimv2:Win32_BIOS
Properties : {BiosCharacteristics, BIOSVersion, BuildNumber, Caption...}
SystemProperties : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...}
Qualifiers : {dynamic, Locale, provider, UUID}
Site :
Container :
Пример 7. Получение служб на удаленном компьютере
В этом примере используется параметр Credential командлета Get-WmiObject
для получения служб на удаленном компьютере. Значение параметра Credential является именем учетной записи пользователя. Пользователю предлагается ввести пароль.
Get-WmiObject Win32_Service -Credential FABRIKAM\administrator -ComputerName Fabrikam
Примечание
Учетные данные нельзя использовать при нацелии на локальный компьютер.
Параметры
-Amended
Получает или задает значение, которое указывает, должны ли объекты, возвращаемые из WMI, содержать измененные сведения. Обычно измененные сведения — это сведения, подлежащие локализации: например, описания объекта и свойства, вложенные в объект WMI.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AsJob
Выполняет команду как фоновое задание. Используйте этот параметр для запуска команд, на завершение которых требуется много времени.
При использовании параметра AsJob команда возвращает объект, который представляет фоновое задание, а затем отображает командную строку. Можно продолжить работу в рамках данного сеанса, пока задание завершается. Если Get-WmiObject
используется на удаленном компьютере, задание создается на локальном компьютере, а результаты с удаленных компьютеров автоматически возвращаются на локальный компьютер. Для управления заданием используйте командлеты, которые содержат командлеты задания. Чтобы получить результаты задания, используйте Receive-Job
командлет .
Примечание
Для использования этого параметра с удаленными компьютерами локальный и удаленный компьютеры должны быть настроены для удаленного взаимодействия. Кроме того, необходимо запустить Windows PowerShell с параметром "Запуск от имени администратора" в Windows Vista и более поздних версиях Windows. Дополнительные сведения см. в разделе about_Remote_Requirements.
Дополнительные сведения о фоновых заданиях Windows PowerShell см. в разделах about_Jobs и about_Remote_Jobs.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Authentication
Указывает уровень проверки подлинности, используемый для подключения к WMI. Допустимые значения:
- -1: без изменений
- 0: по умолчанию
- 1: нет (проверка подлинности в не выполняется.)
- 2. Подключение (проверка подлинности выполняется только в том случае, если клиент устанавливает связь с приложением.)
- 3. Вызов (проверка подлинности выполняется только в начале каждого вызова, когда приложение получает запрос.)
- 4. Пакет (проверка подлинности выполняется для всех данных, полученных от клиента.)
- 5: PacketIntegrity (все данные, передаваемые между клиентом и приложением, проходят проверку подлинности и проверяются.)
- 6: PacketPrivacy (используются свойства других уровней проверки подлинности, и все данные шифруются.)
Type: | AuthenticationLevel |
Accepted values: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Authority
Указывает центр сертификации, используемый для проверки подлинности подключения к WMI. Можно выбрать стандартную проверку подлинности NTLM или Kerberos. Чтобы использовать NTLM, задайте для параметра центра значение ntlmdomain:<DomainName>
, где <DomainName>
определяет допустимое доменное имя NTLM. Чтобы использовать Kerberos, укажите kerberos:<DomainName>\<ServerName>
. Параметр authority не может быть указан при подключении к локальному компьютеру.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Class
Задает имя класса WMI. Если используется этот параметр, командлет возвращает экземпляры класса WMI.
Type: | String |
Aliases: | ClassName |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
Указывает целевой компьютер для операции управления. Введите полное доменное имя (FQDN), NetBIOS-имя или IP-адрес. Если удаленный компьютер находится в домене, отличном от домена локального компьютера, необходимо указать полное доменное имя.
По умолчанию это локальный компьютер. Чтобы указать локальный компьютер (например, в списке имен компьютеров), используйте localhost, имя локального компьютера или точку (.).
Этот параметр не зависит от удаленного взаимодействия Windows PowerShell, которое использует командлет WS-Management. Параметр ComputerNameGet-WmiObject
можно использовать, даже если компьютер не настроен для выполнения WS-Management удаленных команд.
Type: | String[] |
Aliases: | Cn |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Указывает учетную запись пользователя с разрешением на выполнение этого действия. По умолчанию используется текущий пользователь. Введите имя пользователя, например User01, Domain01\User01 или User@Contoso.com. Или введите объект PSCredential , например объект, возвращаемый командлетом Get-Credential
. При вводе имени пользователя запрашивается пароль. Учетные данные нельзя использовать при нацелии на локальный компьютер.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DirectRead
Указывает, запрашивается ли прямой доступ к поставщику WMI для данного класса безотносительно базового класса или его наследуемых классов.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-EnableAllPrivileges
Включает все привилегии текущего пользователя перед вызовом WMI в команде.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Filter
Указывает предложение Where для использования в качестве фильтра. Использует синтаксис языка запросов WMI (WQL).
Важно!
Не включайте ключевое слово Where в значение параметра. Например, следующие команды возвращают только логические диски с DeviceID для "c:" и службы с именем WinRM без использования ключевого слова Where.
Get-WmiObject Win32_LogicalDisk -filter "DeviceID = 'c:' "
Get-WmiObject win32_service -filter "name='WinRM'"
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Impersonation
Задает используемый уровень олицетворения.
Допустимые значения для этого параметра:
- 0: по умолчанию. Считывает локальный реестр для уровня олицетворения по умолчанию. По умолчанию обычно устанавливается значение Impersonate.
- 1: анонимный. Скрывает учетные данные вызывающей стороны.
- 2. Определите. позволяет объектам запрашивать учетные данные вызывающей стороны.
- 3: Олицетворить. позволяет объектам использовать учетные данные вызывающей стороны.
- 4. Делегат. Позволяет объектам разрешать другим объектам использовать учетные данные вызывающей стороны.
Type: | ImpersonationLevel |
Accepted values: | Default, Anonymous, Identify, Impersonate, Delegate |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-List
Получает имена классов WMI в пространстве имен репозитория WMI, который указан параметром Namespace.
Если указан параметр List , но не параметр Пространство имен , Get-WmiObject
используется пространство имен Root\Cimv2 по умолчанию. Этот командлет не использует запись реестра Пространства имен по умолчанию в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting
разделе реестра для определения пространства имен по умолчанию.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Locale
Указывает предпочтительный язык для объектов WMI. Введите значение в формате MS_<LCID> .
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Namespace
При использовании с параметром Class параметр Namespace указывает пространство имен репозитория WMI, где располагается указанный класс WMI. При использовании с параметром List указывается пространство имен, из которого собирается информация о классе WMI.
Type: | String |
Aliases: | NS |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Property
Указывает свойства класса WMI, из которой этот командлет получает сведения. Введите имена свойств.
Type: | String[] |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Query
Запускает указанную инструкцию языка запросов WMI (WQL). Этот параметр не поддерживает очереди событий.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Recurse
Ищет текущее пространство имен и все остальные пространства имен для имени класса, указанного параметром Class.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ThrottleLimit
Указывает максимальное количество операций WMI, которые можно выполнить одновременно. Этот параметр действителен, только если в команде используется параметр AsJob .
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
None
Невозможно передать входные данные в Get-WmiObject
.
Выходные данные
PSObject or System.Management.Automation.RemotingJob
При использовании параметра AsJob командлет возвращает объект задания. В противном случае возвращаемый Get-WmiObject
объект зависит от значения параметра Class .
Примечания
Чтобы получить доступ к сведениям о WMI на удаленном компьютере, командлет необходимо запустить в рамках учетной записи, которая является членом группы локальных администраторов на удаленном компьютере. Кроме того, контроль доступа по умолчанию в пространстве имен WMI удаленного репозитория можно изменить, предоставив права доступа другим учетным записям.
Только некоторые свойства каждого класса WMI отображаются по умолчанию. Набор свойств, который отображается для каждого класса WMI, указан в файле конфигурации Types.ps1xml. Чтобы получить все свойства объекта WMI, используйте Get-Member
командлеты или Format-List
.