共用方式為


about_Suspend-Workflow

主題

about_Suspend-Workflow

簡短描述

描述 Suspend-Workflow 活動,其能暫停該活動出現所在的工作流程。

詳細描述

Suspend-Workflow 活動會在工作流程中暫時停止正在處理的工作流程。在暫停之前,Windows PowerShell® Workflow 會建立一個檢查點,如此一來工作流程的狀態和資料就能保留,且工作流程可以從擱置點繼續執行。

若要繼續工作流程,請執行工作流程的使用者使用 Resume-Job Cmdlet。您不能從工作流程中繼續工作流程。

語法

    workflow <Verb-Noun>
    {
        Suspend-Workflow
    }
    

詳細描述

Suspend-Workflow 會暫時停止工作流程,並傳回代表工作流程作業的工作物件。即使您沒有將工作流程做為工作來執行 (例如使用 AsJob 工作流程一般參數來執行),依然會傳回工作物件。工作狀態為擱置狀態。

您可以使用 Job Cmdlet 來管理擱置的工作流程作業。若要繼續工作流程作業,請使用 Resume-Job Cmdlet。

當您繼續工作流程作業時,工作流程會從遵循 Suspend-Workflow 活動的命令繼續開始。

例如,下列的工作流程包含 Suspend-Workflow 活動。當您執行工作流程時,其會執行 Get-Date 活動、將其輸出儲存在 $a 變數中,然後擱置工作流程,並傳回表示擱置工作流程的工作物件。工作類型是 PSWorkflowJob。

        Workflow Test-Suspend
        {
            $a = Get-Date
            Suspend-Workflow
            (Get-Date)- $a
        }

        PS C:\>Test-Suspend

        Id     Name            PSJobTypeName   State         HasMoreData     Location             Command                  
        --     ----            -------------   -----         -----------     --------             -------                  
        8      Job8            PSWorkflowJob   Suspended     True            localhost            Test-Suspend      

您可以使用工作 Cmdlet (例如 Get-Job) 來管理工作流程作業。

繼續工作流程作業

若要繼續工作流程作業,請使用 Resume-Job Cmdlet。Resume-Job Cmdlet 會立即傳回工作流程作業物件,即使其可能尚未回復為繼續執行。若要等待工作回復為繼續執行,請使用 Wait 參數,或使用 Get-Job Cmdlet 來取得目前的工作物件。

        PS C:\>Resume-Job -Name Job8

        Id     Name            PSJobTypeName   State         HasMoreData     Location             Command                  
        --     ----            -------------   -----         -----------     --------             -------                  
        8      Job8            PSWorkflowJob   Suspended     True            localhost            Test-Suspend      


        PS C:\>Get-Job -Name Job8

        Id     Name            PSJobTypeName   State         HasMoreData     Location             Command                  
        --     ----            -------------   -----         -----------     --------             -------                  
        8      Job8            PSWorkflowJob   Completed     True            localhost            Test-Suspend      

取得工作流程作業的輸出

若要取得工作流程作業的輸出,請使用 Receive-Job Cmdlet。輸出會顯示工作流程從遵循 Suspend-Workflow Cmdlet 的命令開始繼續執行。在暫停之前就已經填入的 $a 變數值,在工作流程繼續執行之後即可供取得。

        PS C:\>Get-Job -Name Job8 | Receive-Job

        Days              : 0
        Hours             : 0
        Minutes           : 0
        Seconds           : 19
        Milliseconds      : 823
        Ticks             : 198230041
        TotalDays         : 0.000229432917824074
        TotalHours        : 0.00550639002777778
        TotalMinutes      : 0.330383401666667
        TotalSeconds      : 19.8230041
        TotalMilliseconds : 19823.0041
        PSComputerName    : localhost 

另請參閱

about_Workflows

開始使用 Windows PowerShell 工作流程 (https://go.microsoft.com/fwlink/?LinkID=252592)