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


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. Если указан параметр списка, командлет получает сведения о классах WMI, доступных в указанном пространстве имен. Если указан параметр запроса, командлет запускает инструкцию WMI-запроса WQL.

Командлет Get-WmiObject не использует удаленное взаимодействие Windows PowerShell для выполнения удаленных операций. Можно использовать параметр ComputerName командлета Get-WmiObject, даже если компьютер не соответствует требованиям к удаленному взаимодействию Windows PowerShell или не настроен для удаленного взаимодействия в 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 получаются с локального компьютера. Параметр свойства командлета 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. Получение служб на удаленном компьютере

В этом примере используется параметр учетных данных командлета Get-WmiObject для получения служб на удаленном компьютере. Значение параметра учетных данных — имя учетной записи пользователя. Пользователю будет предложено ввести пароль.

Get-WmiObject Win32_Service -Credential FABRIKAM\administrator -ComputerName Fabrikam

Заметка

Учетные данные нельзя использовать при нацеливание на локальный компьютер.

Параметры

-Amended

Возвращает или задает значение, указывающее, должны ли объекты, возвращаемые из WMI, содержать измененные сведения. Как правило, измененные сведения являются локализуемыми сведениями, такими как описания объектов и свойств, присоединенные к объекту WMI.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-AsJob

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

При использовании параметра AsJob команда возвращает объект, представляющий фоновое задание, а затем отображает командную строку. Вы можете продолжать работать в сеансе, пока задание завершится. Если Get-WmiObject используется с параметром ComputerName, задание создается на локальном компьютере, а результаты удаленных компьютеров автоматически возвращаются на локальный компьютер. Чтобы управлять заданием, используйте командлеты, содержащие Job существительное. Чтобы получить результаты задания, используйте командлет Receive-Job.

Дополнительные сведения о фоновых заданиях Windows PowerShell см. в about_Jobs и about_Remote_Jobs.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Authentication

Указывает уровень проверки подлинности, используемый с подключением WMI. Допустимые значения:

  • -1: без изменений
  • 0: по умолчанию
  • 1: Нет (проверка подлинности не выполнена.)
  • 2: Connect (проверка подлинности выполняется только в том случае, если клиент устанавливает связь с приложением.)
  • 3: вызов (проверка подлинности выполняется только в начале каждого вызова, когда приложение получает запрос.)
  • 4: пакетной (проверка подлинности выполняется для всех данных, полученных от клиента.)
  • 5: PacketIntegrity (все данные, передаваемые между клиентом и приложением, проходят проверку подлинности и проверяются).)
  • 6: PacketPrivacy (используются свойства других уровней проверки подлинности, а все данные шифруются).)
Тип:AuthenticationLevel
Допустимые значения:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Authority

Указывает центр, используемый для проверки подлинности подключения WMI. Можно указать стандартную проверку подлинности NTLM или Kerberos. Чтобы использовать NTLM, задайте для параметра центра значение ntlmdomain:<DomainName>, где <DomainName> определяет допустимое доменное имя NTLM. Чтобы использовать Kerberos, укажите kerberos:<DomainName>\<ServerName>. Параметр центра нельзя включить при подключении к локальному компьютеру.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Class

Задает имя класса WMI. При использовании этого параметра командлет извлекает экземпляры класса WMI.

Тип:String
Aliases:ClassName
Position:1
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ComputerName

Указывает целевой компьютер для операции управления. Введите полное доменное имя (FQDN), имя NetBIOS или IP-адрес. Если удаленный компьютер находится в домене, отличном от локального компьютера, требуется полное доменное имя.

По умолчанию используется локальный компьютер. Чтобы указать локальный компьютер, например в списке имен компьютеров, используйте localhost, имя локального компьютера или точку (.).

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

Этот параметр не зависит от удаленного взаимодействия Windows PowerShell, использующего WS-Management. Вы можете использовать параметр ComputerName Get-WmiObject, даже если компьютер не настроен на выполнение WS-Management удаленных команд.

Тип:String[]
Aliases:Cn
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Credential

Указывает учетную запись пользователя, которая имеет разрешение на выполнение этого действия. По умолчанию используется текущий пользователь. Введите имя пользователя, например User01, Domain01\User01или User@Contoso.com. Или введите объект PSCredential, например объект, возвращаемый командлетом Get-Credential. При вводе имени пользователя вам будет предложено ввести пароль. Учетные данные нельзя использовать при нацеливание на локальный компьютер.

Тип:PSCredential
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-DirectRead

Указывает, запрашивается ли прямой доступ к поставщику WMI для указанного класса без учета базового класса или производных классов.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-EnableAllPrivileges

Включает все привилегии текущего пользователя перед выполнением команды вызова WMI.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Filter

Указывает , где предложение, используемое в качестве фильтра. Использует синтаксис языка запросов WMI (WQL).

Важный

Не включайте ключевое слово Where в значение параметра. Например, следующие команды возвращают только логические диски с идентификатором устройстваc: и службами с именем WinRM без использования ключевого слова Where.

Get-WmiObject Win32_LogicalDisk -filter "DeviceID = 'c:' "

Get-WmiObject win32_service -filter "name='WinRM'"

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Impersonation

Указывает используемый уровень олицетворения.

Допустимые значения для этого параметра:

  • 0: по умолчанию. Считывает локальный реестр для уровня олицетворения по умолчанию. По умолчанию обычно задано значение олицетворения.
  • 1: анонимные. Скрывает учетные данные вызывающего объекта.
  • 2: идентификации. Позволяет объектам запрашивать учетные данные вызывающего объекта.
  • 3: олицетворения. Позволяет объектам использовать учетные данные вызывающего объекта.
  • 4: делегат. Позволяет объектам разрешать другим объектам использовать учетные данные вызывающего объекта.
Тип:ImpersonationLevel
Допустимые значения:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-List

Возвращает имена классов WMI в пространстве имен репозитория WMI, заданном параметром пространства имен.

Если указать параметр списка, но не параметр пространства имен, Get-WmiObject использует пространство имен Root\Cimv2 по умолчанию. Этот командлет не использует запись реестра пространство имен по умолчанию в разделе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting для определения пространства имен по умолчанию.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Locale

Задает предпочтительный языковой стандарт для объектов WMI. Введите значение в формате MS_<LCID>.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Namespace

При использовании с параметром класса параметр пространства имен указывает пространство имен репозитория WMI, в котором расположен указанный класс WMI. При использовании с параметром списка определяет пространство имен, из которого собираются сведения о классе WMI.

Тип:String
Aliases:NS
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Property

Указывает свойства класса WMI, из которой этот командлет получает сведения. Введите имена свойств.

Тип:String[]
Position:1
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Query

Выполняет указанную инструкцию WMI Query Language (WQL). Этот параметр не поддерживает запросы событий.

Тип:String
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Recurse

Выполняет поиск текущего пространства имен и всех остальных пространств имен для имени класса, указанного параметром класса.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ThrottleLimit

Указывает максимальное количество операций WMI, которые могут выполняться одновременно. Этот параметр действителен, только если параметр AsJob используется в команде.

Тип:Int32
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Входные данные

None

Входные данные невозможно передать в Get-WmiObject.

Выходные данные

PSObject or System.Management.Automation.RemotingJob

При использовании параметра AsJob командлет возвращает объект задания. В противном случае объект, возвращаемый Get-WmiObject, зависит от значения параметра класса.

Примечания

Windows PowerShell включает следующие псевдонимы для Get-WmiObject:

  • gwmi

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

По умолчанию отображаются только некоторые свойства каждого класса WMI. Набор свойств, отображаемых для каждого класса WMI, указывается в файле конфигурации Types.ps1xml. Чтобы получить все свойства объекта WMI, используйте командлеты Get-Member или Format-List.