Windows PowerShell スクリプトを利用してワークフローを作成する

Windows PowerShell スクリプトを記述することでワークフローを作成できます。 ワークフローを作成するには、ワークフロー キーワードの後に、スクリプトの本文の前にワークフローの名前を付けます。 次に例を示します。


workflow Invoke-HelloWorld {"Hello World from workflow"}

ワークフローは、他のWindows PowerShellコマンドと同じ方法で見つかります。

並列とシーケンスの実装

Windows Workflow Foundation では、アクティビティの並列実行がサポートされています。 この機能を Windows PowerShell スクリプトに実装するには、スクリプト ブロックの前でキーワードを使用parallelします。 構築を使用して、 foreach -parallel オブジェクトのコレクションを並列で反復処理することもできます。 並列ブロック内でアクティビティのグループを順番に実行するには、そのアクティビティのグループをスクリプト ブロックで囲み、ブロックの前に sequence キーワードを付けます。

コンピューターをドメインに参加させる

次のスクリプトでは、ユーザーが指定したコンピューターのグループのドメインの状態を確認し、まだ参加していない場合はドメインに参加させ、状態をもう一度確認するワークフローを作成します。 これは、「Windows PowerShell アクティビティを使用したワークフローの作成」で説明されている XAML ワークフローのスクリプト バージョンです。

workflow Join-Domain
{
    param([string[]] $ComputerName, [PSCredential] $DomainCred, [PsCredential] $MachineCred)

    foreach -parallel($Computer in $ComputerName)
    {
        sequence {
        Get-WmiObject -PSComputerName $Computer -PSCredential $MachineCred
        Add-Computer -PSComputerName $Computer -PSCredential $DomainCred
        Restart-Computer -ComputerName $Computer -Credential $MachineCred -For PowerShell -Force -Wait -PSComputerName ""
        Get-WmiObject -PSComputerName $Computer -PSCredential $MachineCred
        }
    }
}