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 担当者や開発者は、マルチデバイス管理アクティビティのシーケンス (ワークフロー内の 1 つのタスク) を、ワークフローとして作成できます。 仕様により、ワークフローは、長時間実行したり、反復実行したり、並列実行したり、中断したり、停止したり、再起動することができます。 中断後に再開することもできますし、ネットワークの停止やコンピューターの再起動など、予期しない中断の後に実行を継続することもできます。

Windows PowerShell ワークフローは、Windows PowerShell 構文 (XAML ファイル) を使用して作成または定義できます 。Windows PowerShell スクリプト ベースのワークフローを作成する方法の詳細については、「スクリプト ワークフローの作成」を参照してください。 XAML ベースのワークフローの詳細については、このトピックの「Visual Studio ワークフロー デザイナーを使用したワークフローの作成とインポート」を参照してください。

Windows PowerShell の RunAs 機能を使用すれば、カスタム セッション構成によって、代理または下位の IT 担当者に、ワークフローやワークフロー内のアクティビティを実行させることができます。

アクティビティ

アクティビティとは、ワークフローに実行させるタスクのことです。 スクリプトが 1 つ以上のコマンドで構成されるように、ワークフローは、シーケンス内で実行される 1 つ以上のアクティビティで構成されます。 スクリプトは、別のスクリプト内の単一コマンドとして使用することもできますし、別のワークフロー内のアクティビティとして使用することもできます。

Windows PowerShell ワークフローの利点

Windows PowerShell ワークフローには、次のようにさまざまな利点があります。

  • Windows PowerShell スクリプト構文の使用

    IT 担当者は、Windows PowerShell のスクリプト スキルを活かし、拡張可能な Windows PowerShell 言語を使用してスクリプト ベースのワークフローを作成できます。Windows PowerShell スクリプト ベースのワークフローは、簡単に記述できるだけでなく、電子メールに貼り付けたり、Web ページ上で公開したりして簡単に共有できます。

  • マルチ デバイス管理

    多数の管理対象ノードにワークフロー タスクを同時に適用できます。Windows PowerShell ワークフローは、共通のパラメーター (PSComputerName など) をワークフローに自動的に追加して、マルチデバイスの管理シナリオに対応します。 ワークフロー用に予約されているパラメーターの詳細については、「ワークフロー作成の参照トピック」の「Reserved Words in Workflows (ワークフローの予約語)」を参照してください。

  • 複雑なプロセスを 1 つのタスクでエンド ツー エンドに管理

    関連するスクリプトやコマンドを単一のワークフローに集約して、シナリオ全体を対象に実行できます。 ワークフロー内のアクティビティの状態や進行状況は、いつでも確認できます。

  • エラー回復の自動化

    ワークフローは、コンピューターの再起動など、計画された中断も計画外の中断も切り抜けます。 ワークフローの操作を一時停止した後、一時停止した時点からワークフローを再開することができます。 ワークフローの一部としてチェックポイントを作成すれば、最後の永続化されたタスク (チェックポイント) からワークフローを再開できるので、ワークフローを最初から再開する必要がありません。

  • 接続とアクティビティの再試行

    ネットワーク接続障害が発生した場合、ワークフロー ユーザーはワークフローの共通パラメーターを使用することで、管理対象ノードへの接続を再試行できます。 また、ワークフローの作成者は、1 つ以上の管理対象ノードでアクティビティを完了できなかった場合 (たとえば、アクティビティの実行時に対象のコンピュータがオフラインであった場合など) に再実行するアクティビティを指定することもできます。

  • 接続と切断

    ユーザーは、ワークフローを実行したままで、ワークフロー を実行しているコンピューターとの接続を確立したり切断したりすることができます。 たとえば、ワークフローの実行と管理に 2 つの異なるコンピューターを使用している場合、ワークフローを管理しているコンピューターからログオフしたり、再起動しても、ワークフローを中断することなく、もう 1 つのコンピューター (自宅のコンピューターなど) からワークフロー処理を監視できます。

  • タスクのスケジュール設定

    ワークフロー タスクは、他の Windows PowerShell コマンドレットまたはスクリプトと同様に、スケジュールを設定し、特定の条件を満たしたときに開始することができます。

Windows PowerShell ワークフローと Windows PowerShell スクリプトの動作の違い

スクリプトの場合は、スクリプト全体が同じ実行空間で実行され、この運用環境によって、使用できるコマンド、変数、およびその他の要素が定義されます。 ワークフローの場合は、ワークフロー内の各アクティビティをさまざまな実行空間で実行できます。 ワークフロー全体の最上位レベルで作成された変数はワークフロー全体で使用できます。一方、スクリプト レベルやコマンド レベルで作成された変数は、作成元のコマンドやスクリプトにのみ使用でき、ワークフロー全体には使用できません。

通常、次のいずれかの要件を満たす必要がある場合は、コマンドレットやスクリプトではなく、ワークフローを使用することを検討してください。

  • シーケンス内で複数のステップを結合した、実行時間の長いタスクを実行する必要がある。

  • タスクを複数のデバイスで実行する必要がある。

  • 実行するタスクにおいて、チェックポイント処理や永続化の機能が必要である。

  • 長時間実行、非同期処理、再起動、並列処理、または中断に対応できるタスクが必要である。

  • 大規模環境や高可用性環境でタスクを実行する必要がある (調整や接続プールが必要な場合など)。

Visual Studio ワークフロー デザイナーを使用したワークフローの作成とインポート

Windows PowerShell スクリプトを使用したワークフローを作成できるだけでなく、Visual Studio ワークフロー デザイナーを使用してワークフローを作成することもできます。 Visual Studio ワークフロー デザイナーで作成したワークフローは、ファイル名拡張子が XAML になります。 ワークフロー デザイナーで作成したワークフローは、Windows PowerShell ワークフロー内で呼び出したりインポートしたりできます。また、Windows PowerShell コマンドレットをワークフロー デザイナー内でアクティビティとして公開することもできます。

Visual Studio ワークフロー デザイナーでワークフローを作成する方法の詳細については、MSDN の Visual Studio ドキュメント「ワークフロー デザイナーの使用」を参照してください。

Visual Studio ワークフロー デザイナーの Windows PowerShell ワークフロー アクティビティ

Windows PowerShell には、ほとんどの Windows PowerShell コマンドレットに対応した組み込みアクティビティが含まれています。 これらのアクティビティは、そのコマンドレットが属する 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

アセンブリからツールボックスにアクティビティを追加する方法の詳細については、「ツールボックスにアクティビティを追加する方法」を参照してください。

参照

ワークフロー環境の構成
Windows PowerShell ワークフローの実行
スクリプト ワークフローの作成
What's New in Windows Workflow Foundation 4.0 (Windows Workflow Foundation 4.0 の新機能)
about_Jobs
about_Workflow_Common_Parameters
about_Workflows