Invoke-WSManAction

对资源 URI 和选择器指定的对象调用操作。

语法

Invoke-WSManAction [-ApplicationName <string>] [-ComputerName <string>] [-Credential <PSCredential>] [-Credential <PSCredential>] [-Credential <PSCredential>] [-Credential <PSCredential>] [-Credential <PSCredential>] [-Credential <PSCredential>] [-Credential <PSCredential>] [-Credential <PSCredential>] [-Credential <PSCredential>] [-Port <int>] [-Port <int>] [-Port <int>] [-Port <int>] [-Port <int>] [-Port <int>] [-Port <int>] [-Port <int>] [-Port <int>] [-UseSSL] [-ResourceURI] <Uri> [-Action] <string> [-Authentication <AuthenticationMechanism>] [-FilePath <File>] [-OptionSet <hashtable>] [-SelectorSet <hashtable>] [-SessionOption <hashtable>] [-ValueSet <hashtable>] [<CommonParameters>]

Invoke-WSManAction [-ConnectionURI <Uri>] [-ResourceURI] <Uri> [-Action] <string> [-Authentication <AuthenticationMechanism>] [-FilePath <File>] [-OptionSet <hashtable>] [-SelectorSet <hashtable>] [-SessionOption <hashtable>] [-ValueSet <hashtable>] [<CommonParameters>]

说明

Invoke-WSManAction 对 RESOURCE_URI(其中的参数由键值对指定)指定的对象运行操作。

此 cmdlet 使用 WSMan 连接/传输层来运行操作。

参数

-Action <string>

指示需要对 ResourceURI 和选择器指定的管理对象执行的方法。

是否为必需?

true

位置?

2

默认值

是否接受管道输入?

false

是否接受通配符?

false

-ApplicationName <string>

指定连接中的应用程序名称。ApplicationName 参数的默认值为 WSMAN。远程终结点的完整标识符采用以下格式:

<transport>://<server>:<port>/<ApplicationName>

例如:

http://server01:8080/WSMAN

承载会话的 Internet 信息服务 (IIS) 将请求连同此终结点转发到指定的应用程序。默认设置“WSMAN”适用于大多数使用情况。当有许多计算机建立了与运行 Windows PowerShell 的一台计算机的远程连接时,需要用到此参数。这种情况下,IIS 托管 Web Services for Management (WS-Management),以保证效率。

是否为必需?

false

位置?

named

默认值

wsman

是否接受管道输入?

false

是否接受通配符?

false

-Authentication <AuthenticationMechanism>

指定服务器上要使用的身份验证机制。可能值为:

- Basic:Basic 是一种方案,在该方案中,用户名和密码以明文形式发送到服务器或代理。

- Default:使用 WS-Management 协议实现的身份验证方法。这是默认设置。

- Digest:Digest 是一种质询响应方案,该方案将服务器指定的数据字符串用于质询。

- Kerberos:客户端计算机和服务器使用 Kerberos 证书相互进行身份验证。

- Negotiate:Negotiate 是一种质询响应方案,该方案与服务器或代理协商以确定要使用的身份验证方案。例如,此参数值允许进行协商以确定是使用 Kerberos 协议还是 NTLM。

- CredSSP:使用凭据安全服务提供程序 (CredSSP) 身份验证,这种方法允许用户委派凭据。此选项用于这样的命令:在一台远程计算机上运行,但从其他远程计算机上收集数据或者在其他远程计算机上运行其他命令。

注意:CredSSP 将本地计算机中的用户凭据委派给远程计算机。此操作增加了远程操作的安全风险。如果远程计算机的安全受到威胁,则在向该计算机传递凭据时,可使用这些凭据来控制网络会话。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-ComputerName <string>

指定要对其运行管理操作的计算机。值可以是完全限定的域名、NetBIOS 名称或 IP 地址。使用本地计算机名称、localhost 或点 (.)指定本地计算机。默认值为本地计算机。当远程计算机与用户位于不同的域时,必须使用完全限定的域名。可以通过管道将此参数的值传递给 cmdlet。

是否为必需?

false

位置?

named

默认值

localhost

是否接受管道输入?

false

是否接受通配符?

false

-ConnectionURI <Uri>

指定连接终结点。此字符串的格式为:

<Transport>://<Server>:<Port>/<ApplicationName>

以下字符串是此参数的格式正确的值:

http://Server01:8080/WSMAN

URI 必须完全限定。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Credential <PSCredential>

指定有权执行此操作的用户帐户。默认值为当前用户。键入用户名,例如“User01”、“Domain01\User01”或 User@Domain.com。或者,输入 PSCredential 对象,例如由 Get-Credential cmdlet 返回的对象。键入用户名时,将会提示您键入密码。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-FilePath <File>

指定用于更新管理资源的文件的路径。通过使用 ResourceURI 参数和 SelectorSet 参数来指定管理资源。例如,以下命令使用 FilePath 参数:

invoke-wsmanaction -action stopservice -resourceuri wmicimv2/Win32_Service -SelectorSet @{Name="spooler"} -FilePath:c:\input.xml -authentication default

此命令使用来自文件的输入对后台处理程序服务调用 StopService 方法。文件 Input.xml 包含以下内容:

<p:StopService_INPUT xmlns:p="https://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service"/>

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-OptionSet <hashtable>

将一组开关传递到服务以修改或调整请求的性质。这些与命令行 shell 中使用的开关的类似之处在于,它们也是特定于服务的。可以指定任意多个选项。

以下示例演示分别为 a、b 和 c 参数传递值 1、2 和 3 的语法:

-OptionSet @{a=1;b=2;c=3}

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByValue, ByPropertyName)

是否接受通配符?

false

-Port <int>

指定要在客户端连接到 WinRM 服务时使用的端口。如果传输方式为 HTTP,则默认端口为 80。如果传输方式为 HTTPS,则默认端口为 443。使用 HTTPS 作为传输方式时,ComputerName 参数的值必须与服务器的证书公用名 (CN) 匹配。但是,如果 SkipCNCheck 参数指定为 SessionOption 参数的一部分,则服务器的证书公用名不必与服务器的主机名称相匹配。SkipCNCheck 参数应仅用于受信任的计算机。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-ResourceURI <Uri>

包含资源类或实例的统一资源标识符 (URI)。URI 用于标识特定类型的资源,例如,计算机上的磁盘或进程。

URI 由前缀和资源的路径组成。例如:

https://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32\_LogicalDisk

http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM\_NumericSensor

是否为必需?

true

位置?

1

默认值

是否接受管道输入?

true (ByValue, ByPropertyName)

是否接受通配符?

false

-SelectorSet <hashtable>

指定一组用于选择特定管理资源实例的值对。当相应资源存在多个实例时,将使用 SelectorSet 参数。SelectorSet 参数的值必须为哈希表。

以下示例说明如何为此参数输入值:

-SelectorSet @{Name="WinRM";ID="yyy"}

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-SessionOption <hashtable>

为 WS-Management 会话定义一组扩展选项。输入使用 New-WSManSessionOption cmdlet 创建的 SessionOption 对象。有关可用选项的详细信息,请参阅 New-WSManSessionOption。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-UseSSL

指定应使用安全套接字层 (SSL) 协议来建立与远程计算机的连接。默认情况下,不使用 SSL。

WS-Management 加密通过网络传输的所有 Windows PowerShell 内容。利用 UseSSL 参数,可以指定 HTTPS(而非 HTTP)的额外保护措施。如果在连接端口上 SSL 不可用并且指定了此参数,则命令将失败。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-ValueSet <hashtable>

指定一个用于帮助修改管理资源的哈希表。通过使用 ResourceURI 参数和 SelectorSet 参数来指定管理资源。ValueSet 参数的值必须为哈希表。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

<CommonParameters>

此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.

输入和输出

输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。

输入

此 cmdlet 不接受任何输入。

输出

此 cmdlet 将不产生任何输出。

示例 1

C:\PS>invoke-wsmanaction -action startservice -resourceuri wmicimv2/win32_service  -selectorset @{name="spooler"} -authentication default

xsi         : http://www.w3.org/2001/XMLSchema-instance
p           : https://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service
cim         : http://schemas.dmtf.org/wbem/wscim/1/common
lang        : en-US
ReturnValue : 0

说明
-----------
此命令调用对应于后台处理程序服务的 Win32_Service WMI 类实例的 StartService 方法。

返回值指示该操作是否成功。在这种情况下,返回值 0 指示该操作成功。返回值 5 指示该服务已启动。





示例 2

C:\PS>invoke-wsmanaction -action stopservice -resourceuri wmicimv2/Win32_Service -SelectorSet @{Name="spooler"} -FilePath:input.xml -authentication default

xsi         : http://www.w3.org/2001/XMLSchema-instance
p           : https://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service
cim         : http://schemas.dmtf.org/wbem/wscim/1/common
lang        : en-US
ReturnValue : 0

说明
-----------
此命令使用来自文件的输入对后台处理程序服务调用 StopService 方法。文件 Input.xml 包含以下内容:

 <p:StopService_INPUT xmlns:p="https://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service"/>

返回值指示该操作是否成功。在这种情况下,返回值 0 指示该操作成功。返回值 5 指示该服务已启动。





示例 3

C:\PS>invoke-wsmanaction -action create -resourceuri wmicimv2/win32_process -valueset @{commandline="notepad.exe";currentdirectory="C:\"}

xsi         : http://www.w3.org/2001/XMLSchema-instance
p           : https://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Process
cim         : http://schemas.dmtf.org/wbem/wscim/1/common
lang        : en-US
ProcessId   : 6356
ReturnValue : 0

说明
-----------
此命令调用 Win32_Process 类的 Create 方法。它向该方法传递两个参数值,Notepad.exe 和“C:\”。结果是,创建了一个运行记事本的新进程,并将该新进程的当前目录设置为“C:\”。





示例 4

C:\PS>invoke-wsmanaction -action startservice -resourceuri wmicimv2/win32_service  -selectorset @{name="spooler"} -computername server01 -authentication default

xsi         : http://www.w3.org/2001/XMLSchema-instance
p           : https://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service
cim         : http://schemas.dmtf.org/wbem/wscim/1/common
lang        : en-US
ReturnValue : 0

说明
-----------
此命令调用对应于后台处理程序服务的 Win32_Service WMI 类实例的 StartService 方法。由于指定了 ComputerName 参数,因此此命令针对 server01 远程计算机运行。

返回值指示该操作是否成功。在这种情况下,返回值 0 指示该操作成功。返回值 5 指示该服务已启动。





另请参阅

概念

Connect-WSMan
Disable-WSManCredSSP
Disconnect-WSMan
Enable-WSManCredSSP
Get-WSManCredSSP
Get-WSManInstance
New-WSManInstance
New-WSManSessionOption
Remove-WSManInstance
Set-WSManInstance
Set-WSManQuickConfig
Test-WSMan
Invoke-WmiMethod