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


Invoke-CimMethod

Вызывает метод класса CIM.

Синтаксис

Invoke-CimMethod
      [-ClassName] <String>
      [-ComputerName <String[]>]
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-Namespace <String>]
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      [-ClassName] <String>
      -CimSession <CimSession[]>
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-Namespace <String>]
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      -ResourceUri <Uri>
      [-ComputerName <String[]>]
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-Namespace <String>]
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      [-ResourceUri <Uri>]
      [-InputObject] <CimInstance>
      -CimSession <CimSession[]>
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      [-ResourceUri <Uri>]
      [-InputObject] <CimInstance>
      [-ComputerName <String[]>]
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      -ResourceUri <Uri>
      -CimSession <CimSession[]>
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-Namespace <String>]
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      [-CimClass] <CimClass>
      [-ComputerName <String[]>]
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      [-CimClass] <CimClass>
      -CimSession <CimSession[]>
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      -Query <String>
      [-QueryDialect <String>]
      [-ComputerName <String[]>]
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-Namespace <String>]
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      -Query <String>
      [-QueryDialect <String>]
      -CimSession <CimSession[]>
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-Namespace <String>]
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Описание

Командлет Invoke-CimMethod вызывает метод класса CIM или экземпляра CIM, используя пары "имя-значение", заданные параметром Arguments .

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

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

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

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

Примеры

Пример 1. Вызов метода

В этом примере вызывается метод Terminate класса Win32_Process .

Invoke-CimMethod -Query 'select * from Win32_Process where name like "notepad%"' -MethodName "Terminate"

Пример 2. Вызов метода с помощью объекта экземпляра CIM

В этом примере извлекается объект экземпляра CIM и сохраняется в переменной с именем $x с помощью командлета Get-CimInstance . Затем содержимое переменной используется в качестве объекта InputObject для командлета Invoke-CimMethod . Метод GetOwner вызывается для CimInstance.

$x = Get-CimInstance -Query 'Select * from Win32_Process where name like "notepad%"'
Invoke-CimMethod -InputObject $x -MethodName GetOwner

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

В этом примере вызывается метод Create с именем с помощью параметра Arguments.

Invoke-CimMethod -ClassName Win32_Process -MethodName "Create" -Arguments @{
  CommandLine = 'notepad.exe'; CurrentDirectory = "C:\windows\system32"
}

Пример 4. Проверка на стороне клиента

В этом примере выполняется проверка на стороне клиента для метода xyz путем передачи объекта CimClass в Invoke-CimMethod.

$c = Get-CimClass -ClassName Win32_Process
Invoke-CimMethod -CimClass $c -MethodName "xyz" -Arguments @{ CommandLine = 'notepad.exe' }

Параметры

-Arguments

Задает параметры для передачи в вызываемый метод. Укажите значения для этого параметра в виде пар "имя-значение", хранящихся в хэш-таблице. Порядок ввода значений не важен.

Type:IDictionary
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-CimClass

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

Командлет можно использовать Get-CimClass для получения определения класса с сервера.

Использование этого параметра позволяет улучшить проверку схемы на стороне клиента.

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

-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, для которого выполняется операция. Этот параметр используется только для статических методов. Вы можете использовать заполнение табуляции для просмотра списка классов, так как PowerShell получает список классов с локального сервера WMI для предоставления списка имен классов.

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

-ComputerName

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

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

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

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

-Confirm

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

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

-InputObject

Указывает объект экземпляра CIM, используемый в качестве входных данных для вызова метода. Этот параметр можно использовать только для вызова методов экземпляра. Чтобы вызвать статические методы класса, используйте параметр Class или CimClass .

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

-MethodName

Указывает имя вызываемого метода CIM. Этот параметр является обязательным и не может быть NULL или пустым. Для вызова статического метода класса CIM используйте ClassName или параметр CimClass .

Type:String
Aliases:Name
Position:2
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Namespace

Задает пространство имен для операции CIM. Пространство имен по умолчанию — root/cimv2. Для просмотра списка пространств имен можно использовать завершение нажатия клавиши TAB, так как 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

-Query

Указывает запрос, выполняемый на сервере CIM. Метод вызывается для экземпляров, полученных в результате запроса. Диалект запроса можно указать с помощью параметра QueryDialect .

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

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:WQL
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

По умолчанию, если этот параметр не указан, используется стандартный универсальный код ресурса 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

-WhatIf

Показывает, что произойдет при запуске командлета. Командлет не выполняется.

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

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

CIM class

Этот командлет принимает класс CIM в качестве входного объекта.

CIM instance

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

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

PSCustomObject

Этот командлет возвращает объект .