簡短描述
描述 Windows PowerShell 工作流程新增至活動的參數。
長描述
Windows PowerShell 工作流將活動通用參數添加到從 PSActivity 基類派生的活動中。 此類別包括 InlineScript 活動和作為活動實現的 Windows PowerShell cmdlet,例如 Get-Process 和 Get-WinEvent。
活動通用參數在 Suspend-Workflow 和 Checkpoint-Workflow 活動上無效,並且不會添加到 Windows PowerShell 工作流在 InlineScript 腳本塊或類似活動中自動運行的 cmdlet 或表示式中。 活動通用參數在 InlineScript 活動上可用,但在 InlineScript 腳本塊中的命令上不可用。
其中數個活動一般參數也是工作流程通用參數或 Windows PowerShell 通用參數。 其他活動通用參數對活動而言是唯一的。
有關工作流通用參數的資訊,請參閱 about_WorkflowCommonParameters。 有關 Windows PowerShell 通用參數的資訊,請參閱 about_CommonParameters。
活動一般參數清單
AppendOutput PSDebug
Debug PSDisableSerialization
DisplayName PSDisableSerializationPreference
ErrorAction PSError
Input PSPersist
MergeErrorToOutput PSPort
PSActionRetryCount PSProgress
PSActionRetryIntervalSec PSProgressMessage
PSActionRunningTimeoutSec PSRemotingBehavior
PSApplicationName PSRequiredModules
PSAuthentication PSSessionOption
PSCertificateThumbprint PSUseSSL
PSComputerName PSVerbose
PSConfigurationName PSWarning
PSConnectionRetryCount Result
PSConnectionRetryIntervalSec UseDefaultInput
PSConnectionURI Verbose
PSCredential WarningAction
參數描述
本節說明活動一般參數。
AppendOutput <布爾值>
的值 $True 會將活動的輸出新增至變數的值。
的值 $False 沒有作用。 根據預設,將值指派給變數會取代變數值。
例如,下列命令會將進程物件新增至 變數中的 $x 服務物件。
Workflow Test-Workflow
{
$x = Get-Service
$x = Get-Process -AppendOutput $true
}
此參數是針對 XAML 型工作流程所設計。 在腳本工作流中,您還可以使用 += 賦值運算符將 output 添加到變數的值,如以下示例所示。
Workflow Test-Workflow
{
$x = Get-Service
$x += Get-Process
}
偵錯 <SwitchParameter>
顯示命令所執行作業的程式設計人員層級詳細數據。 Debug 參數將覆蓋當前命令的 $DebugPreference 變數的值。 只有當命令產生偵錯訊息時,此參數才有效。 此參數也是 Windows PowerShell 通用參數。
DisplayName <字串>
指定活動的易記名稱。 當工作流程運行時,DisplayName 值顯示在進度條中,以及工作流程作業的 Progress 屬性的值中。 當 PSProgressMessage 參數也包含在命令中時,進度欄內容以 <DisplayName>:<PSProgressMessage> 格式顯示。
ErrorAction <ActionPreference>
決定活動如何從 命令回應非終止錯誤。 它不會影響終止錯誤。 僅當命令生成非終止錯誤(例如來自 Write-Error cmdlet 的錯誤)時,此參數才有效。 ErrorAction 參數將覆蓋當前命令的 $ErrorActionPreference 變數的值。 此參數也是 Windows PowerShell 通用參數。
有效值:
繼續。 顯示錯誤訊息,並繼續執行 命令。 “Continue” 是預設值。
忽略。 隱藏錯誤訊息,並繼續執行 命令。 與 SilentlyContinue 不同,Ignore 不會將錯誤消息添加到$Error 自動變數中。 Ignore 值是在 Windows PowerShell 3.0 中引入的。
詢問。 顯示錯誤訊息,並在繼續執行之前提示您確認。 這個值很少使用。
暫停。 自動暫停工作流程工作,以允許進一步調查。 調查之後,可以繼續工作流程。
SilentlyContinue 進行。 隱藏錯誤訊息,並繼續執行 命令。
停。 顯示錯誤訊息,並停止執行 命令。
Input <物件[]>
將物件的集合提交至活動。 這是一次一個管線物件的替代方法。
MergeErrorToOutput <布爾值>
的值 $True 會將錯誤新增至輸出數據流。 值 $False has not effect。 將此參數與 Parallel 和 ForEach -Parallel 關鍵字一起使用,以在單個集合中收集多個並行命令的錯誤和輸出。
PSActionRetryCount <Int32>
如果第一次嘗試失敗,請重複嘗試執行活動。 預設值 0 不會重試。
PSActionRetryIntervalSec <Int32>
判斷動作重試之間的間隔,以秒為單位。 預設值 0 將立即重試該作。 僅當命令中還使用了 PSActionRetryCount 參數時,此參數才有效。
PSActionRunningTimeoutSec <Int32>
決定活動可以在每個目標計算機上執行的時間長度。 如果活動在逾時到期前未完成,Windows PowerShell 工作流程會產生終止錯誤,並停止處理受影響目標電腦上的工作流程。
PSAllowRedirection <布爾值>
值 $True 允許將連接重定向到目標電腦。 值 $False 不起作用。 此活動通用參數也是工作流程通用參數。
使用 PSConnectionURI 參數時,遠端目標可以返回重定向到其他 URI 的指令。 默認情況下,Windows PowerShell 不會重定向連接,但你可以使用值為 $True 的 PSAllowRedirection 參數來允許將連接重定向到目標計算機。
您還可以通過設置首選項變數的 $PSSessionOption MaximumConnectionRedirectionCount 屬性或創建會話的 cmdlet 的 SSessionOption 參數值的 MaximumConnectionRedirectionCount 屬性來限制重定向連接的次數。 預設值為 5。
PSApplicationName <字串>
指定用來連線到目標電腦之連線 URI 的應用程式名稱區段。 當您不使用 命令中的 ConnectionURI 參數時,請使用此參數來指定應用程式名稱。 此活動通用參數也是工作流程通用參數。
預設值是目標電腦上的喜好設定變數值 $PSSessionApplicationName 。 如果未定義此喜好設定變數,預設值為 WSMAN。 此值適用於大部分使用。 如需詳細資訊,請參閱 about_Preference_Variables。
WinRM 服務會使用應用程式名稱來選取接聽程式以服務連線要求。 此參數的值應該符合遠端電腦上接聽程式的 URLPrefix 屬性值。
PSAuthentication <身份驗證機制>
指定連線到目標計算機時,用來驗證使用者認證的機制。 有效值為 Default、Basic、Credssp、Digest、Kerberos、Negotiate 和 NegotiateWithImplicitCredential。 預設值為 Default。 此活動通用參數也是工作流程通用參數。
有關此參數的值的資訊,請參閱 MSDN 中的 System.Management.Automation.Runspaces.AuthenticationMechanism 枚舉的說明。
警告
認證安全性服務提供者 (CredSSP) 驗證,其中使用者認證會傳遞至要驗證的遠端電腦,其設計目的是需要對多個資源進行驗證的命令,例如存取遠端網路共用。 此機制會增加遠端作業的安全性風險。 如果遠端電腦遭到入侵,傳遞給它的認證可用來控制網路會話。
PSCertificateThumbprint <字串>
指定具有執行此動作許可權之用戶帳戶的數位公鑰憑證 (X509)。 輸入憑證的指紋。 此活動通用參數也是工作流程通用參數。
憑證用於客戶端憑證型驗證。 它們只能對應至本機用戶帳戶;它們不適用於網域帳戶。
若要獲取證書,請使用 Windows PowerShell Cert: 驅動器中的 Get-Item 或 Get-ChildItem cmdlet。
PSComputerName <字串>
指定活動執行的目標計算機。 預設值為本機電腦。 此活動通用參數也是工作流程通用參數。
在逗號分隔清單中,輸入一或多部計算機的NETBIOS名稱、IP 位址或完整域名。 若要指定本機計算機,請輸入計算機名稱 「localhost」或點 (.)。
若要將本地電腦包含在 PSComputerName 參數的值中,請使用“以管理員身份運行”選項打開 Windows PowerShell。
如果命令中省略了此參數,或者其值為 $null 或空字元串,則工作流目標是本地計算機,並且不使用 Windows PowerShell 遠端處理來運行命令。
若要在 ComputerName 參數的值中使用 IP 位址,該命令必須包含 PSCredential 參數。 此外,計算機必須針對 HTTPS 傳輸進行設定,或遠端電腦的 IP 位址必須包含在本機電腦上的 WinRM TrustedHosts 清單中。 如需將計算機名稱新增至 TrustedHosts 清單的指示,請參閱 about_Remote_Troubleshooting中的。
PSConfigurationName <字串>
指定用來在目標計算機上建立會話的會話組態。 在目標電腦(而不是運行工作流的計算機)上輸入工作階段配置的名稱。 預設值為 Microsoft.PowerShell。 此活動通用參數也是工作流程通用參數。
PSConnectionRetryCount <UInt>
指定第一次連線嘗試失敗時,連線到每個目標計算機的嘗試次數上限。 輸入一個介於 1 和 4,294,967,295 之間的數位 (UInt.MaxValue)。 預設值零 (0) 表示沒有重試嘗試。 此活動通用參數也是工作流程通用參數。
PSConnectionRetryIntervalSec <UInt>
指定連線重試嘗試之間的延遲,以秒為單位。 預設值為零 (0)。 僅當 PSConnectionRetryCount 的值至少為 1 時,此參數才有效。 此活動通用參數也是工作流程通用參數。
PSConnectionURI <System.Uri>
指定統一資源識別元 (URI),定義目標電腦上的活動連接端點。 URI 必須完整限定。 此活動通用參數也是工作流程通用參數。
此字串格式如下所示:
<Transport>://<ComputerName>:<Port>/<ApplicationName>
預設值是 https://localhost:5985/WSMAN。
如果未指定 PSConnectionURI,則可以使用 PSUseSSL、PSComputerName、PSPort 和 PSApplicationName 參數來指定 PSConnectionURI 值。
URI 傳輸區段的有效值為 HTTP 和 HTTPS。 如果您指定具有傳輸區段的連線 URI,但未指定埠,則會使用標準埠建立會話:80 代表 HTTP,而 HTTPS 則為 443。 若要使用 Windows PowerShell 遠端的預設埠,請針對 HTTP 指定埠 5985,或針對 HTTPS 指定埠 5986。
PSCredential <PSCredential>
指定有權在目標計算機上執行活動的用戶帳戶。 預設值為目前的使用者。 僅當命令中包含 PSComputerName 參數時,此參數才有效。 此活動通用參數也是工作流程通用參數。
鍵入使用者名(如“User01”或“Domain01\User01”),或輸入包含 PSCredential 物件的變數(如 Get-Credential cmdlet 返回的物件)。 如果您只輸入使用者名稱,系統會提示您輸入密碼。
PSDebug <PSDataCollection[DebugRecord]>
將來自活動的調試消息添加到指定的調試記錄集合中,而不是將調試消息寫入主控台或工作流作業的 Debug 屬性的值。 您可以將多個活動的偵錯訊息新增至相同的偵錯記錄集合物件。
若要使用此活動通用參數,請使用 New-Object cmdlet 創建類型為 DebugRecord 的 PSDataCollection 物件,並將該物件保存在變數中。 然後,使用該變數作為一個或多個活動的 PSDebug 參數的值,如以下示例所示。
Workflow Test-Workflow
{
$debugCollection = New-Object -Type `
System.Management.Automation.PSDataCollection[System.Management.Automation.DebugRecord]
InlineScript {\Server01\Share01\Get-AssetData.ps1} -PSDebug $debugCollection -Debug $True
InlineScript {\Server01\Share01\Set-AssetData.ps1} -PSDebug $debugCollection -Debug $True
if ($debugCollection -like "Missing") { ...}
}
PSDisableSerialization <布爾值>
指示活動將「即時」(未串行化)對象傳回工作流程。 產生的物件具有方法與屬性,但它們無法在取得檢查點時儲存。
PSDisableSerializationPreference <布爾值>
將 PSDisableSerialization 參數的等效項應用於整個工作流,而不僅僅是活動。 通常不建議新增此參數,因為無法繼續或保存無法串行化其物件的工作流程。
有效值:
(預設)如果省略,並且您也沒有將 PSDisableSerialization 參數添加到活動中,則會序列化物件。
$True。 指示工作流程中的所有活動傳回「即時」(未串行化)物件。 產生的物件具有方法與屬性,但它們無法在取得檢查點時儲存。$False。 工作流程物件會串行化。
PSError <PSDataCollection[ErrorRecord]>
將活動中的錯誤消息添加到指定的錯誤記錄集合中,而不是將錯誤消息寫入主控台或工作流作業的 Error 屬性的值。 您可以將多個活動的錯誤訊息新增至相同的錯誤記錄集合物件。
若要使用此活動通用參數,請使用 New-Object cmdlet 創建類型為 ErrorRecord 的 PSDataCollection 物件,並將該物件保存在變數中。 然後,使用該變數作為一個或多個活動的 PSError 參數的值,如以下示例所示。
Workflow Test-Workflow
{
$typeName = "System.Management.Automation.PSDataCollection"
$typeName += '[System.Management.Automation.ErrorRecord]'
$ec = New-Object $typeName
InlineScript {\Server01\Share01\Get-AssetData.ps1} -PSError $ec
InlineScript {\Server01\Share01\Set-AssetData.ps1} -PSError $ec
if ($ec.Count -gt 2)
{
# Do Some Work.
}
}
PSPersist <布爾值>
在活動之後取得檢查點。 此檢查點除了工作流程中指定的任何檢查點之外。 此活動通用參數也是工作流程通用參數。
「檢查點」或「持續性點」是工作流程狀態的快照集,以及工作流程執行時所擷取的數據,並儲存至磁碟上的持續性存放區。 Windows PowerShell 工作流程會使用已儲存的數據,從最後一個持續性點繼續暫停或中斷的工作流程,而不是重新啟動工作流程。
有效值:
(預設值)如果您省略此參數,則不會新增檢查點。 檢查點是根據工作流程的設定來取得。
$True。 在活動完成後採取檢查點。 此檢查點除了工作流程中指定的任何檢查點之外。$False。 未新增檢查點。 只有在工作流程中指定時,才會採取檢查點。
PSPort <Int32 系列>
指定目標電腦上的網路埠。 默認埠為 5985(適用於 HTTP 的 WinRM 連接埠)和 5986(適用於 HTTPS 的 WinRM 連接埠)。 此活動通用參數也是工作流程通用參數。
除非必須,否則不要使用 PSPort 參數。 命令中設定的埠會套用至執行命令的所有電腦或會話。 替代埠設定可能會防止命令在所有計算機上執行。 使用替代埠之前,您必須在遠端電腦上設定 WinRM 接聽程式,以在該埠接聽。
PSProgress <PSDataCollection[ProgressRecord]>
將活動的進度消息添加到指定的進度記錄集合中,而不是將進度消息寫入主控台或工作流作業的 Progress 屬性的值。 您可以將來自多個活動的進度訊息新增至相同的進度記錄集合物件。
PSProgressMessage <字串>
指定活動的易記描述。 當工作流運行時,PSProgressMessage 值顯示在進度欄中。 當命令中還包括 DisplayName 時,進度列內容將以 <DisplayName>:<PSProgressMessage> 格式顯示。
此參數對於標識 ForEach -Parallel 腳本塊中的活動特別有用。 如果沒有此訊息,所有平行分支中的活動都會以相同名稱來識別。
PSRemotingBehavior <遠端處理行為>
指定當活動在目標計算機上執行時,遠端管理的方式。 PowerShell 是預設值。
有效值為:
None:活動未在遠端電腦上運行。
PowerShell:Windows PowerShell 遠端處理用於在目標電腦上運行活動。
Custom:Activity 支援其自己的遠端處理類型。 當作為活動實現的 cmdlet 將 RemotingCapability 屬性的值設置為 SupportedByCommand 並且命令包含 ComputerName 參數時,此值有效。
PSRequiredModules <字串>
在執行 命令之前,先匯入指定的模組。 輸入模組名稱。 模組必須安裝在目標計算機上。
安裝在 PSModulePath 環境變數中指定的路徑中的模組將在首次使用模組中的任何命令時自動導入。 使用此參數可導入不在 PSModulePath 位置的模組。
由於工作流程中的每個活動都在其自己的會話中運行,因此 Import-Module 命令僅將模組導入到運行該模組的會話中。 它不會將模組匯入其他活動執行所在的會話。
PSSessionOption <PSSessionOption>
將會話的進階選項設定為目標計算機。 輸入 PSSessionOption 物件,例如使用 New-PSSessionOption cmdlet 創建的物件。 此活動通用參數也是工作流程通用參數。
如果已設定,會話選項的 $PSSessionOption 預設值取決於喜好設定變數的值。 否則,會話會使用會話組態中指定的值。
如需會話選項的描述,包括預設值,請參閱 New-PSSessionOption Cmdlet New-PSSessionOption 的說明主題。
有關 $PSSessionOption 首選項變數的更多資訊,請參閱 about_Preference_Variables。
PSUseSSL <布爾值>
值 $True 使用安全套接字層 (SSL) 協定建立與目標電腦的連接。 根據預設,不會使用 SSL。 值 $False 不起作用。 此活動通用參數也是工作流程通用參數。
WS-Management 會加密透過網路傳輸的所有 Windows PowerShell 內容。 UseSSL 是一種額外的保護,它通過 HTTPS 而不是 HTTP 發送數據。 如果您使用此參數,但在用於命令的埠上無法使用 SSL,則命令會失敗。
PSVerbose <PSDataCollection[詳細記錄]>
將活動中的詳細消息添加到指定的詳細記錄集合中,而不是將詳細消息寫入主控台或工作流作業的 Verbose 屬性的值。 您可以將多個活動的詳細資訊訊息新增至相同的詳細資訊記錄集合物件。
PSWarning <PSDataCollection[WarningRecord]>
將來自活動的警告消息添加到指定的警告記錄集合中,而不是將警告消息寫入主控台或工作流作業的 Warning 屬性的值。 您可以將多個活動的警告訊息新增至相同的警告記錄集合物件。
結果
此參數只在 XAML 工作流程中有效。
UseDefaultInput <布爾值>
依值接受所有工作流程輸入做為活動輸入。
例如,以下示例工作流中的 Get-Process 活動使用UseDefaultInput活動通用參數來獲取傳遞給工作流的輸入。 當您使用輸入執行工作流程時,活動會使用該輸入。
workflow Test-Workflow
{
Get-Service -UseDefaultInput $True
}
PS C:> Test-Workflow -InputObject WinRm
Status Name DisplayName PSComputerName
------ ---- ----------- --------------
Running winrm Windows Remote Management (WS-Manag... localhost
<詳細 SwitchParameter>
顯示命令所執行作業的詳細資訊。 這項信息類似於追蹤或事務歷史記錄中的資訊。 Verbose 參數將覆蓋當前命令的 $VerbosePreference 變數的值。 只有當命令生成詳細訊息時,此參數才有效。 此參數也是 Windows PowerShell 通用參數。
WarningAction <ActionPreference>
決定活動如何回應警告。 “Continue” 是預設值。 WarningAction 參數將替代當前命令的 $WarningPreference 變數的值。 只有當命令產生警告訊息時,此參數才有效。 此參數也是 Windows PowerShell 通用參數。
有效值:
SilentlyContinue 進行。 隱藏警告訊息,並繼續執行 命令。
繼續。 顯示警告訊息,並繼續執行 命令。 “Continue” 是預設值。
詢問。 顯示警告訊息,並在繼續執行之前提示您確認。 這個值很少使用。
停。 顯示警告訊息,並停止執行 命令。
備註
當 $WarningAction 首選項變數在命令中用於運行腳本或函數時,該參數不會覆蓋該參數的值。
例子
活動一般參數非常實用。 例如,可以使用 PSComputerName 參數僅在目標電腦的子集上運行特定活動。
或者,您可以使用 PSConnectionRetryCount 和 PSConnectionRetryIntervalSec 參數來調整特定活動的重試值。
下面的示例演示如何使用 PSComputerName 活動通用參數僅在特定域的電腦上運行 Get-EventLog 活動。
Workflow Test-Workflow
{
$UserDomain = Get-Content -Path '.\UserComputers.txt'
$Log = (Get-EventLog -LogName "Windows PowerShell" `
-PSComputerName $UserDomain)
if ($Log)
{
# Do Work Here.
}
}