Invoke-WSManAction

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

语法

Invoke-WSManAction
      [-Action] <String>
      [-ConnectionURI <Uri>]
      [-FilePath <String>]
      [-OptionSet <Hashtable>]
      [[-SelectorSet] <Hashtable>]
      [-SessionOption <SessionOption>]
      [-ValueSet <Hashtable>]
      [-ResourceURI] <Uri>
      [-Credential <PSCredential>]
      [-Authentication <AuthenticationMechanism>]
      [-CertificateThumbprint <String>]
      [<CommonParameters>]
Invoke-WSManAction
      [-Action] <String>
      [-ApplicationName <String>]
      [-ComputerName <String>]
      [-FilePath <String>]
      [-OptionSet <Hashtable>]
      [-Port <Int32>]
      [[-SelectorSet] <Hashtable>]
      [-SessionOption <SessionOption>]
      [-UseSSL]
      [-ValueSet <Hashtable>]
      [-ResourceURI] <Uri>
      [-Credential <PSCredential>]
      [-Authentication <AuthenticationMechanism>]
      [-CertificateThumbprint <String>]
      [<CommonParameters>]

说明

此 cmdlet 仅在 Windows 平台上可用。

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

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

示例

示例 1:调用方法

Invoke-WSManAction -Action startservice -ResourceURI wmicimv2/win32_service  -SelectorSet @{name="spooler"} -Authentication default

xsi         : http://www.w3.org/2001/XMLSchema-instance
p           : http://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:调用方法

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           : http://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="http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service" />

示例 3:调用具有指定参数值的方法

Invoke-WSManAction -Action create -ResourceURI wmicimv2/win32_process -ValueSet @{commandline="notepad.exe";currentdirectory="C:\"}

xsi         : http://www.w3.org/2001/XMLSchema-instance
p           : http://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.exeC:\。 因此,将创建一个新进程来运行记事本,并将新进程的当前目录设置为 C:\

示例 4:在远程计算机上调用方法

Invoke-WSManAction -Action startservice -ResourceURI wmicimv2/win32_service  -SelectorSet @{name="spooler"} -ComputerName server01 -Authentication default

xsi         : http://www.w3.org/2001/XMLSchema-instance
p           : http://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 指示该服务已启动。

参数

-Action

指定要在 ResourceURI 和选择器指定的管理对象上运行的方法。

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

-ApplicationName

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

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

例如:

http://server01:8080/WSMAN

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Authentication

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

  • Basic - 基本是一种方案,其中用户名和密码以明文形式发送到服务器或代理。
  • Default - 使用由 WS-Management 协议实现的身份验证方法。 这是默认值。
  • Digest - 摘要是质询-响应方案,它使用服务器指定的数据字符串进行质询。
  • Kerberos - 客户端计算机和服务器使用 Kerberos 证书相互进行身份验证。
  • Negotiate - 协商是一种质询-响应方案,它与服务器或代理协商以确定用于身份验证的方案。 例如,此参数值允许协商以确定是使用 Kerberos 协议还是 NTLM。
  • CredSSP - 使用凭据安全支持提供程序 (CredSSP) 身份验证,这允许用户委托凭据。 此选项专门用于这样的命令:在一台远程计算机上运行,但从其他远程计算机收集数据或在其他远程计算机上运行其他命令。

注意

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

Type:AuthenticationMechanism
Aliases:auth, am
Accepted values:None, Default, Digest, Negotiate, Basic, Kerberos, ClientCertificate, Credssp
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CertificateThumbprint

指定有权执行此操作的用户帐户的数字公钥证书 (X509)。 输入证书的证书指纹。

在基于客户端证书的身份验证中使用证书。 证书只能映射到本地用户帐户,而不适用于域帐户。

若要获取证书指纹,请使用 Get-Item Windows PowerShell Cert: 驱动器中的 或 Get-ChildItem 命令。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

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

Type:String
Aliases:cn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionURI

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

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

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

http://Server01:8080/WSMAN

URI 必须完全限定。

Type:Uri
Aliases:CURI, CU
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

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

Type:PSCredential
Aliases:cred, c
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-FilePath

指定用于更新管理资源的文件的路径。 通过使用 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="http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service" />

Type:String
Aliases:Path
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OptionSet

将一组开关传递到某个服务以修改或优化请求的性质。 这些开关与命令行 shell 中使用的开关相似,因为它们也是特定于服务的。 可以指定任何数量的选项。

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

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

Type:Hashtable
Aliases:os
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Port

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

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ResourceURI

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

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

http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk

http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_NumericSensor

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

-SelectorSet

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

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

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

Type:Hashtable
Position:2
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SessionOption

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

Type:SessionOption
Aliases:so
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseSSL

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

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

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

-ValueSet

指定可帮助修改管理资源的哈希表。 使用 ResourceURISelectorSet 参数指定管理资源。 ValueSet 参数的值必须为哈希表。

Type:Hashtable
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

None

不能通过管道将对象传递给此 cmdlet。

输出

XmlElement

此 cmdlet 以 XmlElement 对象的形式返回操作的结果。