Get-CimInstance

Возвращает экземпляры CIM класса с сервера CIM.

Синтаксис

Get-CimInstance
   [-ClassName] <String>
   [-ComputerName <String[]>]
   [-KeyOnly]
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   [-QueryDialect <String>]
   [-Shallow]
   [-Filter <String>]
   [-Property <String[]>]
   [<CommonParameters>]
Get-CimInstance
   -CimSession <CimSession[]>
   -ResourceUri <Uri>
   [-KeyOnly]
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   [-Shallow]
   [-Filter <String>]
   [-Property <String[]>]
   [<CommonParameters>]
Get-CimInstance
   -CimSession <CimSession[]>
   [-ResourceUri <Uri>]
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   -Query <String>
   [-QueryDialect <String>]
   [-Shallow]
   [<CommonParameters>]
Get-CimInstance
   -CimSession <CimSession[]>
   [-ClassName] <String>
   [-KeyOnly]
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   [-QueryDialect <String>]
   [-Shallow]
   [-Filter <String>]
   [-Property <String[]>]
   [<CommonParameters>]
Get-CimInstance
   -CimSession <CimSession[]>
   [-ResourceUri <Uri>]
   [-OperationTimeoutSec <UInt32>]
   [-InputObject] <CimInstance>
   [<CommonParameters>]
Get-CimInstance
   [-ResourceUri <Uri>]
   [-ComputerName <String[]>]
   [-OperationTimeoutSec <UInt32>]
   [-InputObject] <CimInstance>
   [<CommonParameters>]
Get-CimInstance
   -ResourceUri <Uri>
   [-ComputerName <String[]>]
   [-KeyOnly]
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   [-Shallow]
   [-Filter <String>]
   [-Property <String[]>]
   [<CommonParameters>]
Get-CimInstance
   [-ResourceUri <Uri>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [-OperationTimeoutSec <UInt32>]
   -Query <String>
   [-QueryDialect <String>]
   [-Shallow]
   [<CommonParameters>]

Описание

Командлет Get-CimInstance получает экземпляры класса CIM с сервера CIM. Вы можете указать имя класса или запрос для этого командлета. Этот командлет возвращает один или несколько объектов экземпляров CIM, представляющих snapshot экземпляров CIM, присутствующих на сервере CIM.

Если параметр InputObject не указан, командлет работает одним из следующих способов:

  • Если ни параметр ComputerName , ни параметр CimSession не указаны, этот командлет работает с локальным инструментарием управления Windows (WMI) с использованием сеанса COM.
  • Если указан параметр ComputerName или CimSession , этот командлет работает с сервером CIM, указанным параметром ComputerName или CimSession .

Если указан параметр InputObject , командлет работает одним из следующих способов:

  • Если ни параметр ComputerName, ни параметр CimSession не указаны, этот командлет использует сеанс CIM или имя компьютера из входного объекта.
  • Если указан параметр ComputerName или CimSession , то этот командлет использует значение параметра CimSession или Значение параметра ComputerName .

Примеры

Пример 1. Получение экземпляров CIM указанного класса

В этом примере извлекаются экземпляры CIM класса с именем Win32_Process.

Get-CimInstance -ClassName Win32_Process

Пример 2. Получение списка пространств имен с сервера WMI

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

Get-CimInstance -Namespace root -ClassName __Namespace

Пример 3. Получение экземпляров класса, отфильтрованных с помощью запроса

В этом примере извлекаются все экземпляры CIM, начинающиеся с буквы P класса с именем Win32_Process с помощью запроса, заданного параметром Query .

Get-CimInstance -Query "SELECT * from Win32_Process WHERE name LIKE 'P%'"

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

В этом примере извлекаются все экземпляры CIM, начинающиеся с буквы P класса с именем Win32_Process с помощью параметра Filter.

Get-CimInstance -ClassName Win32_Process -Filter "Name like 'P%'"

Пример 5. Получение экземпляров CIM с заполнением только ключевых свойств

В этом примере создается новый экземпляр CIM в памяти для класса с именем Win32_Process со свойством @{ "Handle"=0 } key и сохраняется в переменной с именем $x. Переменная передается как экземпляр CIM командлету Get-CimInstance для получения определенного экземпляра.

$x = New-CimInstance -ClassName Win32_Process -Namespace root\cimv2 -Property @{ "Handle"=0 } -Key Handle -ClientOnly
Get-CimInstance -CimInstance $x

Пример 6. Получение экземпляров CIM и их повторное использование

В этом примере возвращаются экземпляры CIM класса с именем Win32_Process и сохраняются в переменных $x и $y. Затем переменная $x форматируется в таблице, содержащей только свойства Name и KernelModeTime , для таблицы задано значение AutoSize.

$x,$y = Get-CimInstance -ClassName Win32_Process
$x | Format-Table -Property Name,KernelModeTime -AutoSize

Name                 KernelModeTime
----                 --------------
System Idle Process 157238797968750

Пример 7. Получение экземпляров CIM с удаленного компьютера

В этом примере извлекаются экземпляры CIM класса с именем Win32_ComputerSystem с удаленных компьютеров с именами Server01 и Server02.

Get-CimInstance -ClassName Win32_ComputerSystem -ComputerName Server01,Server02

Пример 8. Получение только ключевых свойств, а не всех свойств

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

$x = Get-CimInstance -Class Win32_Process -KeyOnly
$x | Invoke-CimMethod -MethodName GetOwner

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

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

Get-CimInstance -Class Win32_Process -Property Name,KernelModeTime
$x = Get-CimInstance -Class Win32_Process -Property Name,KernelModeTime
$x | Invoke-CimMethod -MethodName GetOwner

Экземпляр, полученный с помощью параметра Property, можно использовать для выполнения других операций CIM, например Set-CimInstance или Invoke-CimMethod.

Пример 10. Получение экземпляра CIM с помощью сеанса CIM

Этот пример создает сеанс CIM на компьютерах с именами Server01 и Server02 с помощью командлета New-CimSession и сохраняет сведения о сеансе в переменной с именем $s. Затем содержимое переменной передается Get-CimInstance в с помощью параметра CimSession , чтобы получить экземпляры CIM класса с именем Win32_ComputerSystem.

$s = New-CimSession -ComputerName Server01,Server02
Get-CimInstance -ClassName Win32_ComputerSystem -CimSession $s

Параметры

-CimSession

Указывает сеанс CIM, используемый для этого командлета. Введите переменную, содержащую сеанс CIM, или команду, которая создает или получает сеанс CIM, например New-CimSession командлеты или Get-CimSession . Дополнительные сведения см. в разделе about_CimSession.

Type:CimSession[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ClassName

Указывает имя класса CIM, для которого извлекаются экземпляры CIM. Вы можете использовать завершение табуляции для просмотра списка классов, так как PowerShell получает список классов с локального сервера WMI для предоставления списка имен классов.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ComputerName

Указывает компьютер, на котором требуется выполнить операцию CIM. Вы можете указать полное доменное имя (FQDN), NetBIOS-имя или IP-адрес. Если этот параметр не указан, командлет выполняет операцию на локальном компьютере с помощью компонентной объектной модели (COM).

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

Если на одном компьютере выполняется несколько операций, подключитесь с помощью сеанса CIM для повышения производительности.

Type:String[]
Aliases:CN, ServerName
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Filter

Указывает предложение where для использования в качестве фильтра. Укажите предложение на языке запросов WQL или CQL . Не включайте WHERE ключевое слово в значение параметра .

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-InputObject

Указывает объект экземпляра CIM для использования в качестве входных данных.

Если вы уже работаете с объектом экземпляра CIM, этот параметр можно использовать для передачи объекта экземпляра CIM, чтобы получить последнюю snapshot с сервера CIM. При передаче объекта экземпляра CIM в качестве входных данных Get-CimInstance возвращает объект с сервера с помощью операции получения CIM, а не операции перечисления или запроса. Использование операции получения CIM более эффективно, чем извлечение всех экземпляров и их фильтрация.

Если класс CIM не реализует операцию get, при указании параметра InputObject возвращается ошибка.

Type:CimInstance
Aliases:CimInstance
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-KeyOnly

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

Используйте параметр KeyOnly , чтобы вернуть только небольшую часть объекта, которую можно использовать для других операций, таких как Set-CimInstance командлеты или Get-CimAssociatedInstance .

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Namespace

Задает пространство имен класса CIM.

Пространство имен по умолчанию — root/cimv2. Вы можете использовать завершение табуляции для просмотра списка пространств имен, так как PowerShell получает список пространств имен с локального сервера WMI для предоставления списка пространств имен.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-OperationTimeoutSec

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

Если для параметра OperationTimeoutSec задано значение меньше, чем время ожидания повторной попытки надежного подключения в 3 минуты, то сбои сети, которые длятся больше, чем значение параметра OperationTimeoutSec , невозможно восстановить, так как время ожидания операции на сервере истекает, прежде чем клиент сможет повторно подключиться.

Type:UInt32
Aliases:OT
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Property

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

Type:String[]
Aliases:SelectProperties
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Query

Указывает запрос, выполняемый на сервере CIM. Если указанное значение содержит двойные кавычки ", одинарные кавычки 'или обратную косую черту \, необходимо экранировать эти символы, префиксируя их символом обратной косой черты. Если указанное значение использует оператор WQL LIKE , необходимо экранировать следующие символы, заключив их в квадратные скобки []: percent %, подчеркивание _или открывающую квадратную скобку [.

Вы не можете использовать запрос метаданных для получения списка классов или запроса событий. Чтобы получить список классов, используйте Get-CimClass командлет . Чтобы получить запрос на событие, используйте Register-CimIndicationEvent командлет .

Диалект запроса можно указать с помощью параметра QueryDialect .

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-QueryDialect

Указывает язык запроса, используемый для параметра Query. Допустимые значения для этого параметра: WQL или CQL. Значение по умолчанию — WQL.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ResourceUri

Указывает универсальный код ресурса (URI) класса ресурса или экземпляра ресурса. URI используется для идентификации определенного типа ресурсов, например дисков и процессов на компьютере.

URI состоит из префикса и пути к ресурсу. Пример:

  • https://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk
  • http://intel.com/wbem/wscim/1/amt-schema/1/AMT_GeneralSettings

По умолчанию, если этот параметр не указан, используется стандартный URI http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ ресурса DMTF и к нему добавляется имя класса.

ResourceURI можно использовать только с сеансами CIM, созданными по протоколу WSMan, или при указании параметра ComputerName , который создает сеанс CIM с помощью WSMan. Если указать этот параметр без параметра ComputerName или указать сеанс CIM, созданный по протоколу DCOM, вы получите ошибку, так как протокол DCOM не поддерживает параметр ResourceURI .

Если указаны параметры ResourceUri и Filter , параметр Filter игнорируется.

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Shallow

Указывает, что экземпляры класса возвращаются без включения экземпляров каких-либо дочерних классов. По умолчанию командлет возвращает экземпляры класса и его дочерние классы.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

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

CIM Instance

Этот командлет принимает входные объекты, указанные с помощью параметра InputObject.

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

CIM Instance

Этот командлет возвращает один или несколько объектов экземпляров CIM, представляющих snapshot экземпляров CIM на сервере CIM.