Поделиться через


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 .