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>]
说明
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
此命令调用与 Spooler 服务相对应的 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
此命令使用文件中的输入调用 Spooler 服务上的 StopService 方法。
该文件 Input.xml
包含以下内容:
<p:StopService_INPUT xmlns:p="http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service" />
返回值指示作是否成功。 在这种情况下,返回值为 0 表示成功。 返回值 5 表示服务已启动。
示例 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.exe
和 C:\
。 因此,将创建一个新进程来运行记事本,并将新进程的当前目录设置为 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
此命令调用与 Spooler 服务相对应的 Win32_Service WMI 类实例的 StartService 方法。 由于指定了 ComputerName 参数,因此该命令针对远程 server01 计算机运行。
返回值指示作是否成功。 在这种情况下,返回值为 0 表示成功。 返回值 5 表示服务已启动。
参数
-Action
指定要在 ResourceURI 和选择器指定的管理对象上运行的方法。
类型: | String |
Position: | 1 |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-ApplicationName
指定连接中的应用程序名称。 ApplicationName 参数的默认值为 WSMAN。 远程终结点的完整标识符采用以下格式:
<Transport>://<Server>:<Port>/<ApplicationName>
例如:
http://server01:8080/WSMAN
承载会话的 Internet Information Services (IIS)会将具有此终结点的请求转发到指定的应用程序。 此默认设置“WSMAN”适用于大多数使用。 当许多计算机与运行 Windows PowerShell 的计算机建立远程连接时,将使用此参数。 在这种情况下,IIS 托管用于管理的 Web 服务(WS-Management),以提高效率。
类型: | String |
Position: | Named |
默认值: | Wsman |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Authentication
指定要在服务器上使用的身份验证机制。 可能的值包括:
-
Basic
- 基本是一种方案,其中用户名和密码以明文形式发送到服务器或代理。 -
Default
- 使用由 WS-Management 协议实现的身份验证方法。 这是默认值。 -
Digest
- 摘要是一种质询响应方案,它使用服务器指定的数据字符串来应对质询。 -
Kerberos
- 客户端计算机和服务器使用 Kerberos 证书相互进行身份验证。 -
Negotiate
- 协商是一种质询响应方案,它与服务器或代理协商以确定用于身份验证的方案。 例如,此参数值允许协商来确定是使用 Kerberos 协议还是 NTLM。 -
CredSSP
- 使用凭据安全支持提供程序(CredSSP)身份验证,使用户能够委托凭据。 此选项适用于在一台远程计算机上运行的命令,但从其他远程计算机上收集数据或运行其他命令。
谨慎
CredSSP 将用户的凭据从本地计算机委托给远程计算机。 这种做法会增加远程作的安全风险。 如果远程计算机遭到入侵,则当凭据传递给该计算机时,凭据可用于控制网络会话。
类型: | AuthenticationMechanism |
别名: | auth, am |
接受的值: | None, Default, Digest, Negotiate, Basic, Kerberos, ClientCertificate, Credssp |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-CertificateThumbprint
指定有权执行此作的用户帐户的数字公钥证书(X509)。 输入证书的证书指纹。
证书用于基于客户端证书的身份验证。 它们只能映射到本地用户帐户;它们不适用于域帐户。
若要获取证书指纹,请使用 Windows PowerShell 证书:驱动器中的 Get-Item
或 Get-ChildItem
命令。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ComputerName
指定要对其运行管理作的计算机。 该值可以是完全限定的域名、NetBIOS 名称或 IP 地址。 使用本地计算机名称、使用 localhost 或使用点(.
)指定本地计算机。 本地计算机是默认值。 当远程计算机与用户位于不同的域中时,必须使用完全限定的域名。 可以将此参数的值通过管道传递给 cmdlet。
类型: | String |
别名: | cn |
Position: | Named |
默认值: | Localhost |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ConnectionURI
指定连接终结点。 此字符串的格式为:
<Transport>://<Server>:<Port>/<ApplicationName>
以下字符串是此参数的格式正确的值:
http://Server01:8080/WSMAN
URI 必须完全限定。
类型: | Uri |
别名: | CURI, CU |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Credential
指定有权执行此作的用户帐户。 默认值为当前用户。 键入用户名,例如“User01”、“Domain01\User01”或 User@Domain.com。 或者,输入 PSCredential 对象,例如 Get-Credential
cmdlet 返回的对象。 键入用户名时,系统会提示输入密码。
类型: | PSCredential |
别名: | cred, c |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-FilePath
指定用于更新管理资源的文件的路径。 使用 ResourceURI 参数和 SelectorSet 参数指定管理资源。 例如,以下命令使用 FilePath 参数:
Invoke-WSManAction -Action StopService -ResourceUri wmicimv2/Win32_Service -SelectorSet @{Name="spooler"} -FilePath C:\input.xml -Authentication Default
此命令使用文件中的输入调用 Spooler 服务上的 StopService 方法。 该文件 Input.xml
包含以下内容:
<p:StopService_INPUT xmlns:p="http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service" />
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-OptionSet
将一组开关传递给服务,以修改或优化请求的性质。 这些开关类似于命令行 shell 中使用的开关,因为它们特定于服务。 可以指定任意数量的选项。
以下示例演示传递 a、b 和 c 参数的值 1、2 和 3 的语法:
-OptionSet @{a=1;b=2;c=3}
类型: | Hashtable |
别名: | os |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-Port
指定客户端连接到 WinRM 服务时要使用的端口。 当传输为 HTTP 时,默认端口为 80。 当传输为 HTTPS 时,默认端口为 443。 使用 HTTPS 作为传输时,ComputerName 参数的值必须与服务器的证书公用名(CN)匹配。 但是,如果将 SkipCNCheck 参数指定为 SessionOption 参数的一部分,则服务器的证书公用名不必与服务器的主机名匹配。 SkipCNCheck 参数应仅用于受信任的计算机。
类型: | Int32 |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | 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
类型: | Uri |
别名: | ruri |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-SelectorSet
指定一组值对,用于选择特定的管理资源实例。 当资源有多个实例存在时,将使用 SelectorSet。 SelectorSet 的值必须是哈希表。
以下示例演示如何输入此参数的值:
-SelectorSet @{Name="WinRM";ID="yyy"}
类型: | Hashtable |
Position: | 2 |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-SessionOption
定义 WS-Management 会话的一组扩展选项。 输入使用 New-WSManSessionOption
cmdlet 创建的 SessionOption 对象。 有关可用选项的详细信息,请参阅 New-WSManSessionOption
。
类型: | SessionOption |
别名: | so |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-UseSSL
指定安全套接字层 (SSL) 协议用于建立与远程计算机的连接。 默认情况下,不使用 SSL。
WS-Management 加密通过网络传输的所有 PowerShell 内容。 UseSSL 参数允许指定对 HTTPS 的附加保护,而不是 HTTP。 如果 SSL 在用于连接的端口上不可用,并且指定此参数,则命令将失败。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ValueSet
指定有助于修改管理资源的哈希表。 可以使用 ResourceURI 和 SelectorSet 参数指定管理资源。 ValueSet 参数的值必须是哈希表。
类型: | Hashtable |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
None
不能通过管道将对象传递给此 cmdlet。
输出
此 cmdlet 将作的结果作为 XmlElement 对象返回。