Вызывает методы инструментария управления Windows (WMI)

Синтаксис

Invoke-WmiMethod [-Class] <string> [[-ArgumentList] <Object[]>] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod -InputObject <ManagementObject> [-ArgumentList <Object[]>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod -Path <string> [-ArgumentList <Object[]>] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Описание

Командлет Invoke-WmiMethod вызывает методы WMI.

Параметры

-ArgumentList <Object[]>

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

Важно! Необходимо второе значение $null, в противном случае команда создаст ошибку, например "Невозможно привести объект типа 'System.Byte' к типу 'System.Array'.".

Пример использования массива объектов ($binSD) и последующего значения null ($null):

PS C:\> $acl = Get-Acl test.txt

PS C:\> $binSD = $acl.GetSecurityDescriptorBinaryForm()

PS C:\> invoke-wmimethod -class Win32_SecurityDescriptorHelper -Name BinarySDToSDDL -argumentlist $binSD, $null

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-AsJob

Запускает команду в качестве фонового задания. Этот параметр служит для запуска команд, выполнение которых занимает длительное время.

При использовании параметра AsJob команда возвращает объект, представляющий фоновое задание, а затем отображает командную строку. Пока задание выполняется можно продолжать работу в сеансе. Если командлет Invoke-WmiMethod используется для работы с удаленным компьютером, задание создается на локальном компьютере, и результаты с удаленных компьютеров автоматически возвращаются на локальный компьютер. Для управления заданием используйте командлеты, в именах которых содержится существительное Job (командлеты Job). Чтобы получить результаты задания, используйте командлет Receive-Job.

Примечание. Чтобы использовать этот параметр для удаленных компьютеров, для локального и удаленного компьютеров должно быть настроено удаленное взаимодействие. Кроме того, при работе с компьютером под управлением Windows Vista и более поздних версий Windows необходимо запускать Windows PowerShell командой "Запуск от имени администратора". Дополнительные сведения см. в разделе about_Remote_Requirements.

Дополнительные сведения о фоновых заданиях в Windows PowerShell см. в разделах about_Jobs и about_Remote_Jobs.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Authentication <AuthenticationLevel>

Задает уровень проверки подлинности, используемый для WMI-соединения. Допустимые значения:

-1: Unchanged

0: Default

1: None (проверка подлинности не используется).

2: Connect (проверка подлинности выполняется только при установке клиентом подключения к приложению).

3: Call (проверка подлинности выполняется только в начале каждого вызова при получении запроса приложением).

4: Packet (проверка подлинности выполняется при обработке всех данных, полученных от клиента).

5: PacketIntegrity (для всех данных, передаваемых между клиентом и приложением, проводится проверка подлинности и проверка целостности).

6: PacketPrivacy (используются свойства других уровней проверки подлинности, все данные шифруются).

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Authority <string>

Задает центр, который используется для проверки подлинности WMI-соединения. Можно указать стандартную проверку подлинности NTLM или Kerberos. Чтобы использовать NTLM, задайте для параметра Authority значение "ntlmdomain:<имя_домена>", где <имя_домена> — допустимое имя домена NTLM. Чтобы использовать Kerberos, укажите "kerberos:<имя_домена>\<имя_сервера>". При подключении к локальному компьютеру нельзя использовать параметр Authority.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Класс <string>

Задает класс WMI, в котором содержится вызываемый статический метод.

Обязательно?

true

Позиция?

1

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-ComputerName <string[]>

Задает компьютер, к которому требуется применить операцию управления. Значение может быть полным доменным именем, именем NetBIOS или IP-адресом. Используйте имя локального компьютера, "localhost" или точку (.) чтобы указать "Локальный компьютер". Локальный компьютер используется по умолчанию. Если пользователь и удаленный компьютер находятся в разных доменах, необходимо использовать полное доменное имя. Кроме того, можно передать значение этому параметру по конвейеру.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Credential <PSCredential>

Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01", "Domain01\User01" или User@Contoso.com. Или укажите объект PSCredential, например объект, возвращенный командлетом Get-Credential. При вводе имени пользователя появится приглашение ввести пароль.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-EnableAllPrivileges

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

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Impersonation <ImpersonationLevel>

Задает используемый уровень олицетворения. Допустимые значения:

0: Default (считывает значение уровня представления по умолчанию из локального реестра, обычно это значение равняется "3: Impersonate").

1: Anonymous (скрывает учетные данные вызывающего).

2: Identify (позволяет объектам запрашивать учетные данные вызывающего).

3: Impersonate (позволяет объектам использовать учетные данные вызывающего).

4: Delegate (позволяет объектам разрешать другим объектам использовать учетные данные вызывающего).

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-InputObject <ManagementObject>

Задает объект ManagementObject, используемый в качестве входных данных. При использовании этого параметра все остальные параметры, за исключением параметров Flag и Argument, игнорируются.

Обязательно?

true

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByValue)

Принимать подстановочные знаки?

false

-Locale <string>

Задает предпочтительную локаль для объектов WMI. Задает значение параметра Locale как массив в формате MS_<LCID> в желаемом порядке.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Name <string>

Задает имя вызываемого метода. Этот параметр обязателен и не может иметь пустое значение или значение NULL.

Обязательно?

true

Позиция?

2

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Namespace <string>

При использовании с параметром Class данный параметр задает пространство имен хранилища WMI, в котором находится указанный класс или объект WMI.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Path <string>

Задает путь к классу WMI или экземпляру класса WMI. Указанные класс или экземпляр должны содержать метод, заданный параметром Name.

Обязательно?

true

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-ThrottleLimit <int>

Дает возможность пользователю указать пороговое значение количества операций WMI, которые могут выполняться одновременно. Этот параметр используется вместе с параметром AsJob. Ограничение скорости относится только к текущей команде, но не к сеансу или компьютеру.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Confirm

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

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-WhatIf

Описывает, что произойдет при выполнении команды, без ее фактического выполнения.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

<CommonParameters>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.

Ввод и вывод

Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.

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

Нет

Этот командлет не принимает никаких входных данных.

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

Нет

Этот командлет не формирует никаких выходных данных.

Пример 1

C:\PS>invoke-wmimethod -path win32_process -name create -argumentlist notepad.exe

__GENUS		: 2
__CLASS		: __PARAMETERS
__SUPERCLASS	 :
__DYNASTY		: __PARAMETERS
__RELPATH		:
__PROPERTY_COUNT : 2
__DERIVATION	 : {}
__SERVER		 :
__NAMESPACE	:
__PATH		 :
ProcessId		: 4844
ReturnValue	: 0

Описание
-----------
Эта команда запускает экземпляр Блокнота, вызвав метод Create класса Win32_Process.

Примечание. Если команда завершена, свойство ReturnValue имеет значение "0", а свойство ProcessId содержит целое число (следующий номер идентификатора процесса).






Пример 2

C:\PS>invoke-wmimethod -path "CIM_DataFile.Name='C:\scripts\test.txt'" -Name Rename -ArgumentList "C:\scripts\test_bu.txt"

__GENUS		: 2
__CLASS		: __PARAMETERS
__SUPERCLASS	 :
__DYNASTY		: __PARAMETERS
__RELPATH		:
__PROPERTY_COUNT : 1
__DERIVATION	 : {}
__SERVER		 :
__NAMESPACE	:
__PATH		 :
ReturnValue	: 0

Описание
-----------
Эта команда переименовывает файл. В ней используется параметр Path для ссылки на экземпляр класса CIM_DataFile. Затем применяется метод Rename к данному конкретному экземпляру.

Примечание. Свойство ReturnValue имеет значение 0, если команда завершается.






См. также