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 заполняется 0
, а свойство ProcessId заполняется целым числом (номером идентификатора следующего процесса), если команда завершена.
Пример 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. Затем он применяет метод Переименования к конкретному экземпляру.
Свойство 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
: 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. Можно указать стандартную проверку подлинности Windows NT LAN Manager (NTLM) или Kerberos. Чтобы использовать NTLM, задайте для параметра центра значение ntlmdomain:<DomainName>
, где <DomainName>
определяет допустимое доменное имя NTLM. Чтобы использовать Kerberos, укажите kerberos:<DomainName>\<ServerName>
. Параметр центра нельзя включить при подключении к локальному компьютеру.
Тип: | 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, используемый в качестве входных данных. Если этот параметр используется, все остальные параметры, кроме Flag и Argument, игнорируются.
Тип: | ManagementObject |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Locale
Задает предпочтительный языковой стандарт для объектов WMI. Укажите значение параметра языкового стандарта в качестве массива в формате MS_<LCID>
в предпочтительном порядке.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Name
Указывает имя вызываемого метода. Этот параметр является обязательным и не может быть пустым или пустым.
Тип: | 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