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


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>]

Описание

Этот командлет доступен только на платформе Windows.

Командлет Get-CimInstance получает экземпляры CIM класса с сервера CIM. Можно указать имя класса или запрос для этого командлета. Этот командлет возвращает один или несколько объектов экземпляра CIM, представляющих моментальный снимок экземпляров 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 с помощью запроса, указанного параметром запроса .

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 } ключа и сохраняет его в переменной с именем $x. Переменная передается в качестве экземпляра Get-CimInstance CIM командлету, чтобы получить конкретный экземпляр.

$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.

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

-ClassName

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

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

-ComputerName

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

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

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

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

-Filter

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

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

-InputObject

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

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

Параметр InputObject не перечисляет коллекции. Если коллекция передается, возникает ошибка. При работе с коллекциями передайте входные данные для перечисления значений.

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

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

-KeyOnly

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

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

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

-Namespace

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

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

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

-OperationTimeoutSec

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

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

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

-Property

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

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

-Query

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

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

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

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

-QueryDialect

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

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

-ResourceUri

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

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

  • http://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 игнорируется.

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

-Shallow

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

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

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

CimInstance

Объект экземпляра CIM можно передать в этот командлет.

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

CimInstance

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

Примечания

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

  • Windows:
    • gcim

Этот командлет доступен только на платформах Windows.