Invoke-WSManAction

在資源 URI 和選取器所指定的物件上叫用動作。

Syntax

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>]

Description

會在 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.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

此命令會呼叫對應至 Spooler 服務之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

裝載會話的 網際網路資訊服務 (IIS)會將具有此端點的要求轉送至指定的應用程式。 此預設設定 「WSMAN」 適用於大部分用途。 當許多電腦與執行 Windows PowerShell 的電腦建立遠端連線時,這個參數是設計成使用。 在此情況下,IIS 會裝載 Web Services for Management (WS-Management) 以提高效率。

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

-Authentication

指定用於伺服器的驗證機制。 可能的值包括:

  • Basic - 基本是一種配置,其中使用者名稱和密碼會以純文本傳送至伺服器或 Proxy。
  • Default - 使用 WS-Management 通訊協定所實作的驗證方法。 這是預設值。
  • Digest - 摘要是一種挑戰回應配置,使用伺服器指定的數據字串來進行挑戰。
  • Kerberos - 用戶端電腦和伺服器會使用 Kerberos 憑證相互驗證。
  • Negotiate - 交涉是一種挑戰回應配置,會與伺服器或 Proxy 交涉,以判斷要用於驗證的配置。 例如,此參數值允許交涉來判斷是否使用 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 憑證:磁碟驅動器中的 或 Get-ChildItem 命令。

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

-ComputerName

指定您要執行管理作業的電腦。 此值可以是完整功能變數名稱、NetBIOS 名稱或IP位址。 使用本機計算機名稱、使用localhost,或使用點 (.) 來指定本機電腦。 本機計算機是預設值。 當遠端電腦位於與使用者不同的網域時,您必須使用完整功能變數名稱。 您可以使用管線將此參數的值傳送至 Cmdlet。

Type:String
Aliases:cn
Position:Named
Default value:Localhost
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

此命令會使用來自檔案的輸入,呼叫 Spooler 服務上的 StopService 方法。 檔案 Input.xml包含下列內容:

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

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

-OptionSet

將一組參數傳遞至服務,以修改或精簡要求的性質。 這些參數類似於命令行殼層中使用的參數,因為它們是特定的服務。 您可以指定任意數目的選項。

下列範例示範傳遞 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 工作階段的一組擴充選項。 輸入您使用 Cmdlet 建立的 New-WSManSessionOption 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

指定可協助修改管理資源的哈希表。 您可以使用 ResourceURI 和 SelectorSet 參數來指定管理資源。 ValueSet 參數的值必須是哈希表。

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

輸入

None

您無法使用管線將物件傳送至此 Cmdlet。

輸出

XmlElement

這個 Cmdlet 會將作業的結果當做 XmlElement 物件傳回。