Windows PowerShell 工作流程簡介

 

適用於: Windows Server 2012, Windows Server 2012 R2

IT 專業人員通常會連續執行長期的工作或工作流程,以自動管理多部電腦的環境,但同時可能影響多個受管理的電腦或裝置。Windows PowerShell 工作流程讓 IT 專業人員可以享受到 Windows Workflow Foundation 的好處,以及 Windows PowerShell 的自動化功能和簡易性。Windows PowerShell 工作流程功能是在 Windows Server® 2012 和 Windows 8 中引進,屬於 Windows PowerShell 3.0 和較新版本的 Windows PowerShell。Windows PowerShell 工作流程有助於自動化散佈、協調以及完成多重裝置的工作,讓使用者和系統管理員更專注於處理更高階的工作。

Windows PowerShell 是在 Windows Vista 和 Windows Server 2008 發行時第一次引進,它是建構在 Microsoft® .NET Framework 上的分散式自動引擎、命令列殼層及指令碼編寫語言。 這是特別為自動化 Windows 管理所設計。

Windows PowerShell 工作流程是 Windows PowerShell 3.0 和 Windows PowerShell 4.0 的一項重要功能。 如需 Windows PowerShell 的詳細資訊,請參閱 Windows PowerShell 的新功能

本主題包括下列各節。

  • Windows PowerShell 工作流程概觀

  • Windows PowerShell 工作流程和 Windows PowerShell 指令碼有何不同

  • 使用 Visual Studio 工作流程設計工具建立和匯入工作流程

Windows PowerShell 工作流程概觀

工作流程是一系列經過程式設計、相互連結的步驟,能夠執行長期的工作,或是需要與多部裝置或受管理節點上的多個步驟協調進行。Windows PowerShell 工作流程可讓 IT 專業人員和開發人員將連續的多重裝置管理活動或工作流程內的單一工作,編寫為工作流程。 依照設計,工作流程可以長時間執行、可重複、經常性、可並行、可中斷、可暫停,以及可重新啟動。 它們可以暫停和繼續,也可以在非預期的中斷之後繼續,例如網路中斷或電腦重新啟動。

Windows PowerShell 工作流程可以使用 Windows PowerShell 語法或 XAML 檔案來編寫或定義。 如需有關編寫 Windows PowerShell 指令碼型工作流程的詳細資訊,請參閱撰寫指令碼工作流程。 如需 XAML 型工作流程的詳細資訊,請參閱本主題的使用 Visual Studio 工作流程設計工具建立和匯入工作流程。

利用 Windows PowerShell 的 RunAs 功能,自訂工作階段設定可讓委派或下屬 IT 專業人員執行工作流程或工作流程內的活動。

活動

活動是您想要讓工作流程執行的特定工作。 就像指令碼由一或多個命令所組成,工作流程是由連續執行的一或多個活動所組成。 一個指令碼也可以作為另一個指令碼中的單一命令,而一個工作流程可以作為另一個工作流程內的活動。

Windows PowerShell 工作流程的好處

下列清單描述 Windows PowerShell 工作流程的許多好處。

  • 使用 Windows PowerShell 指令碼語法

    IT 專業人員可以發揮 Windows PowerShell 指令碼編寫技能,使用可延伸的 Windows PowerShell 語言來編寫以指令碼為基礎的工作流程。Windows PowerShell 指令碼型工作流程很容易編寫,只要貼在電子郵件裡或在網頁上發佈,就能輕鬆分享。

  • 多重裝置管理

    您可以同時將工作流程工作套用到數百個受管理的節點。Windows PowerShell 工作流程會自動將一般參數新增到工作流程,例如 PSComputerName,以支援多重裝置管理案例。 如需有關保留給工作流程的參數的詳細資訊,請參閱工作流程撰寫參考主題中的<工作流程中的保留字>。

  • 執行單一工作來管理複雜的端對端程序

    您可以影響到整個案例的相關指令碼或命令組合成單一工作流程。 您隨時都能查看工作流程內的活動狀態和進度。

  • 自動化失敗修復

    工作流程不受預期的和意外的中斷所影響,例如電腦重新啟動。 您可以暫停工作流程作業,然後重新啟動或從原本暫停的地方繼續工作流程。 您可以在工作流程中編寫檢查點,以便能夠從上一個持續的工作 (或檢查點) 繼續工作流程,而不需要從頭開始執行工作流程。

  • 連線和活動重試

    工作流程使用者可以使用工作流程一般參數,以便在網路連線失敗時,重試連接受管理的節點。 工作流程作者也可以指定當一或多個受管理節點上無法完成活動時 (例如,執行活動時,目標電腦離線),所必須再次執行的活動。

  • 連線和中斷連線

    使用者可以連接及中斷連接正在執行工作流程的電腦,但工作流程仍繼續執行。 例如,如果您執行工作流程,並在兩部不同的電腦上管理此工作流程,您可以登出或重新啟動您用來管理工作流程的電腦,同時從另一部電腦 (例如家用電腦) 監視工作流程作業,而不會中斷工作流程。

  • 工作排程

    您可以排程工作流程工作,並在符合特定條件時啟動,就像其他任何 Windows PowerShell Cmdlet 或指令碼一樣。

Windows PowerShell 工作流程和 Windows PowerShell 指令碼有何不同

在指令碼中,整個指令碼在相同的 Runspace 中執行,這是定義有哪些命令、變數和其他項目可用的作業環境。 在工作流程中,工作流程中的每個活動可以在不同的 Runspace 中執行。 在整個工作流程最上層建立的變數可在整個工作流程中使用。如果是在指令碼或命令層級建立,則適用於該命令或指令碼,但不適用於整個工作流程。

一般而言,在必須符合下列任何需求時,您應該考慮使用工作流程,而不是 Cmdlet 或指令碼。

  • 您需要執行的長期工作是結合連續的多個步驟。

  • 您需要執行的工作會在多個裝置上執行。

  • 您需要執行的工作需要檢查點或持續性。

  • 您需要執行的長期工作為非同步、可重新啟動、可並行或可中斷。

  • 您需要在大規模的或高可用性環境中執行工作,可能需要節流和連接集區。

使用 Visual Studio 工作流程設計工具建立和匯入工作流程

除了使用 Windows PowerShell 指令碼編寫工作流程外,您也可以使用 Visual Studio 工作流程設計工具來編寫工作流程。 您在 Visual Studio 工作流程設計工具中編寫的工作流程具有 XAML 副檔名。 您可以在 Windows PowerShell 工作流程中叫用和匯入工作流程設計工具中編寫的工作流程,並公開 Windows PowerShell Cmdlet 當做工作流程設計工具內的活動。

如需有關在 Visual Studio 工作流程設計工具中編寫工作流程的詳細資訊,請參閱 MSDN 上 Visual Studio 文件中的使用工作流程設計工具

Visual Studio 工作流程設計工具中的 Windows PowerShell 工作流程活動

Windows PowerShell 包含適用於大部分 Windows PowerShell Cmdlet 的內建活動。 這些活動封裝在組件中,名稱與包含 Cmdlet 的 Windows PowerShell 模組名稱相符。 以下是安裝在全域組件快取 (GAC) 中的 Windows PowerShell 活動組件清單。

  • Microsoft.PowerShell.Activities

  • Microsoft.PowerShell.Core.Activities

  • Microsoft.PowerShell.Diagnostics.Activities

  • Microsoft.PowerShell.Management.Activities

  • Microsoft.PowerShell.Security.Activities

  • Microsoft.PowerShell.Utility.Activities

  • Microsoft.WSMan.Management.Activities

如需將活動從組件新增到工具箱的詳細資訊,請參閱 How to:將活動新增到工具箱

請參閱

設定工作流程環境
執行 Windows PowerShell 工作流程
撰寫指令碼工作流程
Windows Workflow Foundation 4.0 的新功能
about_Jobs
about_Workflow_Common_Parameters
about_Workflows