Invoke-WmiMethod
Вызывает методы WMI.
Синтаксис
Invoke-WmiMethod
[-Class] <String>
[-Name] <String>
[-ArgumentList <Object[]>]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
-InputObject <ManagementObject>
[-Name] <String>
[-ArgumentList <Object[]>]
[-AsJob]
[-ThrottleLimit <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
-Path <String>
[-Name] <String>
[-ArgumentList <Object[]>]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
[-Name] <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
[-Name] <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
[-Name] <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Командлет Invoke-WmiMethod
вызывает методы объектов инструментария управления Windows (WMI).
Новые командлеты Common Information Model (CIM), представленные в Windows PowerShell 3.0, выполняют те же задачи, что и командлеты WMI. Командлеты CIM соответствуют стандартам WS-Management (WSMan) и стандарту CIM, что позволяет командлетам использовать те же методы для управления компьютерами Windows и другими операционными системами. Вместо использования рекомендуется использовать Invoke-WmiMethod
Invoke-CimMethod.
Примеры
Пример 1. Перечисление требуемого порядка параметров метода WMI
Эта команда указывает нужный порядок объектов.
Get-WmiObject Win32_Volume |
Get-Member -MemberType Method -Name Format |
Select-Object -ExpandProperty Definition
System.Management.ManagementBaseObject Format(System.String FileSystem, System.Boolean QuickFormat,
System.UInt32 ClusterSize, System.String Label, System.Boolean EnableCompression,
System.UInt32 Version)
Вызов WMI в PowerShell 3.0 отличается от других методов и требует, чтобы значения объекта вводились в определенном порядке.
Пример 2. Запуск экземпляра приложения
([Wmiclass]'Win32_Process').Create.OverloadDefinitions
System.Management.ManagementBaseObject Create(System.String CommandLine, System.String CurrentDirectory,
System.Management.ManagementObject#Win32_ProcessStartup ProcessStartupInformation)
Invoke-WmiMethod -Path Win32_Process -Name Create -ArgumentList C:\Windows\system32\notepad.exe
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 2
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
ProcessId : 11312
ReturnValue : 0
PSComputerName :
Эта команда запускает экземпляр Блокнота, вызывая Create
метод класса Win32_Process .
Свойство ReturnValue заполняется свойством , а свойство ProcessId заполняется 0
целым числом (номером следующего идентификатора процесса), если команда завершена.
Пример 3. Переименование файла
$invokeWmiMethodSplat = @{
Path = "CIM_DataFile.Name='C:\scripts\test.txt'"
Name = 'Rename'
ArgumentList = 'C:\scripts\test_bu.txt'
}
Invoke-WmiMethod @invokeWmiMethodSplat
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 1
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
ReturnValue : 0
Эта команда переименовывает файл. Он использует параметр Path для ссылки на экземпляр класса CIM_DataFile . Затем она применяет метод Rename к этому конкретному экземпляру.
Свойство ReturnValue заполняется 0
, если команда завершена.
Пример 4. Передача массива значений с помощью "-ArgumentList"
Пример использования массива объектов $binSD
, за которым следует $null
значение.
$acl = Get-Acl test.txt
$binSD = $acl.GetSecurityDescriptorBinaryForm()
$invokeWmiMethodSplat = @{
Class = 'Win32_SecurityDescriptorHelper'
Name = 'BinarySDToSDDL'
ArgumentList = $binSD, $null
}
Invoke-WmiMethod @invokeWmiMethodSplat
Параметры
-ArgumentList
Задает параметры для передачи в вызываемый метод. Значение этого параметра должно быть массивом объектов, и они должны отображаться в порядке, необходимом для вызываемого метода. Этот Invoke-CimCommand
командлет не имеет этих ограничений.
Чтобы определить порядок перечисления этих объектов, выполните GetMethodParameters()
метод в классе WMI, как показано в примере 1, в конце этого раздела.
Внимание
Если первое значение является массивом, содержащим несколько элементов, требуется второе значение $null
. В противном случае команда создает ошибку, например Unable to cast object of type 'System.Byte' to type 'System.Array'.
. См. пример 4 выше.
Тип: | Object[] |
Aliases: | Args |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-AsJob
Указывает, что этот командлет выполняет команду как фоновое задание. Используйте этот параметр для запуска команд, на завершение которых требуется много времени.
При использовании параметра AsJob команда возвращает объект, представляющий фоновое задание, а затем отображает командную строку. Можно продолжить работу в рамках данного сеанса, пока задание завершается. Если Invoke-WmiMethod
используется для удаленного компьютера, задание создается на локальном компьютере, а результаты с удаленных компьютеров автоматически возвращаются на локальный компьютер. Чтобы управлять заданием, используйте командлеты, содержащие Job
существительное (командлеты задания). Чтобы получить результаты задания, используйте Receive-Job
командлет.
Для использования этого параметра с удаленными компьютерами локальный и удаленный компьютеры должны быть настроены для удаленного взаимодействия. Кроме того, необходимо запустить Windows PowerShell с помощью параметра "Запуск от имени администратора " в Windows Vista и более поздних версиях Windows. Дополнительные сведения см. в about_Remote_Requirements.
Дополнительные сведения о фоновых заданиях Windows PowerShell см. в about_Jobs и about_Remote_Jobs.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Authentication
Указывает уровень проверки подлинности, используемый для подключения к WMI. Допустимые значения для этого параметра:
-1
: без изменений0
: по умолчанию1
: Нет (проверка подлинности не выполнена.)2
: подключение (проверка подлинности выполняется только в том случае, если клиент устанавливает связь с приложением.)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. Можно указать стандартную проверку подлинности Windows NT LAN Manager (NTLM) или Kerberos. Чтобы использовать NTLM, задайте для параметра центра значение ntlmdomain:<DomainName>
, где <DomainName>
определяет допустимое доменное имя NTLM. Чтобы использовать Kerberos, укажите kerberos:<DomainName>\<ServerName>
. Параметр authority не может быть указан при подключении к локальному компьютеру.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Class
Указывает класс WMI, который содержит вызываемый статический метод.
Тип: | String |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-ComputerName
Указывает в виде строкового массива компьютеры, на которые этот командлет выполняется команда. По умолчанию используется локальный компьютер.
Введите имя NetBIOS, IP-адрес или полное доменное имя одного или нескольких компьютеров. Чтобы указать локальный компьютер, введите имя компьютера, точку (.
) или localhost
.
Этот параметр не зависит от удаленного взаимодействия Windows PowerShell. Параметр ComputerName можно использовать, даже если компьютер не настроен для выполнения удаленных команд.
Тип: | String[] |
Aliases: | Cn |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Confirm
Запрос подтверждения перед выполнением командлета.
Тип: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Credential
Указывает учетную запись пользователя с разрешением на выполнение этого действия. По умолчанию используется текущий пользователь. Введите имя пользователя, например User01
, Domain01\User01
или User@Contoso.com
. Или введите объект PSCredential , например объект, возвращаемый командлетом Get-Credential
. При вводе имени пользователя появится приглашение ввести пароль.
Тип: | PSCredential |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-EnableAllPrivileges
Указывает, что этот командлет включает все привилегии текущего пользователя перед выполнением вызова WMI.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Impersonation
Задает используемый уровень олицетворения. Допустимые значения для этого параметра:
0
: по умолчанию (считывает локальный реестр для уровня олицетворения по умолчанию , который обычно имеет значение3
: олицетворение.)1
: анонимный (скрывает учетные данные вызывающего объекта.)2
: определение (позволяет объектам запрашивать учетные данные вызывающего объекта.)3
: олицетворения (позволяет объектам использовать учетные данные вызывающего объекта.)4
: делегат (позволяет объектам разрешать другим объектам использовать учетные данные вызывающего объекта.)
Тип: | ImpersonationLevel |
Допустимые значения: | Default, Anonymous, Identify, Impersonate, Delegate |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-InputObject
Указывает объект ManagementObject, используемый в качестве входных данных. При использовании этого параметра все остальные параметры, кроме параметров флага и аргумента, игнорируются.
Тип: | ManagementObject |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Locale
Указывает предпочтительный язык для объектов WMI. Укажите значение параметра языкового стандарта в качестве массива в MS_<LCID>
формате в предпочтительном порядке.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Name
Указывает имя вызываемого метода. Этот параметр является обязательным и не может быть NULL или пустым.
Тип: | String |
Position: | 1 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Namespace
При использовании с параметром класса этот параметр указывает пространство имен репозитория WMI, в котором находится указанный класс или объект WMI.
Тип: | String |
Aliases: | NS |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Path
Указывает путь к объекту WMI класса WMI или указывает путь к объекту WMI экземпляра класса WMI. Класс или указанный экземпляр должен содержать метод, указанный в параметре Name .
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-ThrottleLimit
Задает значение регулирования для числа операций WMI, которые могут выполняться одновременно. Этот параметр используется вместе с параметром AsJob . Предел регулирования применяется только к текущему командлету, а не к сеансу или компьютеру.
Тип: | Int32 |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-WhatIf
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Тип: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
None
Этот командлет не принимает никаких входных данных.
Выходные данные
None
Этот командлет не формирует никаких выходных данных.
Примечания
Windows PowerShell включает следующие псевдонимы для Invoke-WmiMethod
:
iwmi
Связанные ссылки
PowerShell