Service Manager でワークフローを使用して IT プロセスを自動化する
Service Manager を使用すると、以前は手動タスクを必要としていた多くの管理プロセスを自動化できます。 この自動化を実現する機能が Windows Workflow Foundation (WF) ワークフローです。 WF ワークフローは、他の Service Manager アクティビティの種類と区別するためにWF アクティビティとも呼ばれるワークフロー アクティビティで構成されます。 各ワークフロー アクティビティは、ユーザーまたはコンピューターを Active Directory ドメイン Services (AD DS) のグループに参加させる、Service Manager インシデントを作成する、スクリプトを実行するなどの機能を実行します。 複数の WF 活動を組み合わせて、一連のタスクを実行する 1 つのワークフローを作成し、ワークフローを実行する条件を指定できます。
この記事では、プロセスの自動化に使用できる Service Manager の機能について説明します。 ワークフローと管理パック間の関係について説明し、Service Manager オーサリング ツールが既定のアクティビティ ライブラリで提供する Windows Workflow Foundation (WF) アクティビティについて説明します。
ワークフローと管理パック
Service Manager は、管理パックに格納されているトリガー条件情報を使用して Windows Workflow Foundation (WF) ワークフローを実行します。 ワークフローごとに、管理パックに 1 つのデータ ソース モジュールおよび 1 つの書き込みアクション モジュールが含まれています。 データ ソース モジュールにはワークフローの実行をトリガーする条件、書き込みアクション モジュールにはワークフローのアクションが定義されています。 管理パックには、ワークフローが使用するスクリプト情報も保存されます。
ファイルと形式
管理パック ファイルに加え、WF ワークフローには次のサポート ファイルが必要です。
オーサリング環境ファイル。 ワークフローを作成または編集したときに、これらのファイルにプロパティ値やワークフロー ロジックなどの生のワークフロー情報が保存されます。
コンパイル済みのワークフロー アセンブリ ファイル (ワークフロー名.dll)。 Service Manager Authoring Tool で管理パックを保存すると、このツールは生のワークフロー ファイル (XOML ファイルと CS ファイル) もワークフロー アセンブリ (DLL) ファイルにコンパイルします。
活動アセンブリ ファイル (活動名.dll)。 これらのファイルには、使用可能なワークフロー活動の定義が含まれています。 オーサリング ツールでは、アクティビティ アセンブリ ファイルを変更できません。
Service Manager コンソール環境にワークフローを含む管理パックを実装するには、Service Manager がワークフロー アセンブリ ファイルとアクティビティ アセンブリ ファイル、および管理パック自体にアクセスできることを確認します。 次の図に、ワークフローの実行時に各ファイルがどのように連動するかを示します。
ワークフローのトリガー条件
ワークフローのデータ ソース モジュールは、ワークフロー トリガー条件を定義します。 ワークフローには次の 2 種類のトリガー条件のいずれかを設定できます。
タイマー。 このオプション ( スケジュールとも呼ばれます) は、特定の曜日または特定の間隔でワークフローをトリガーします。
データベース クエリ。 このオプション ( サブスクリプションとも呼ばれます) は、特定の種類の変更がオブジェクトの特定のクラスに発生したときにワークフローをトリガーします。 クラスは、すべてのインストール済みの管理パックからを選択でき、次の 3 種類の変更を選択することができます。
クラスの新しいインスタンスが作成されたとき
クラスのインスタンスが更新されたとき
クラスのインスタンスが削除されたとき
活動ライブラリ
Service Manager 作成ツールのアクティビティ ライブラリには、基本的な Windows Workflow Foundation (WF) ワークフローを構築するためのワークフロー アクティビティが多数用意されています。 各アクティビティは、ワークフロー内でのループ構造の確立、スクリプトの実行、Service Manager インシデントの作成など、個別の関数を実行します。 活動ライブラリには、次の種類の活動が含まれています。
Active Directory アクティビティ - グループへのユーザーまたはコンピューターの追加など、Active Directory 機能を実行するアクティビティ。
制御フロー アクティビティ - ループや if-else 分岐など、ワークフローの構造を提供するアクティビティ。
Virtual Machine Manager アクティビティ - 仮想マシンで単純な操作を実行するワークフローを構築するために使用できるアクティビティ。
スクリプト アクティビティ - Windows PowerShell、コマンド ライン、または Microsoft Visual Basic Scripting Edition (VBScript) スクリプトを実行するアクティビティ。
Service Manager アクティビティ - インシデントの作成や更新など、Service Manager の機能を実行するアクティビティ。
次の表に、オーサリング ツールで使用できる既定のアクティビティを示します。
Active Directory 活動 | 説明 |
---|---|
AD DS コンピューターのグループへの追加 | コンピューターを Active Directory ドメイン サービス (AD DS) のセキュリティ グループに追加します。 このアクティビティを使用する場合は、Service Manager ワークフロー アカウントに AD DS のセキュリティ グループを変更するための十分なアクセス許可があることを確認します。 |
AD DS ユーザーのグループへの追加 | ユーザーを AD DS のセキュリティ グループに追加します。 このアクティビティを使用する場合は、Service Manager ワークフロー アカウントに AD DS のセキュリティ グループを変更するための十分なアクセス許可があることを確認します。 |
制御フロー活動 | 説明 |
---|---|
[遅延] | ワークフロー内の活動間に遅延を挿入します。 |
For Each Loop | 特定の活動セットを、定義した回数繰り返します。 |
IfElse | ブール値 (True/False) 条件に基づいてワークフロー内の活動のシーケンスを制御します。 前の活動 (スクリプト活動など) の出力を条件として使用できます。 |
Parallel | 活動のシーケンスを、同時に実行する 2 つのシーケンスに分岐します。 |
仮想マシン管理活動 | 説明 |
---|---|
VM の取得 | System Center Virtual Machine Manager (VMM) ライブラリから仮想マシン ID の一覧を取得します。 |
VM の移動 | 仮想マシンを VMM ライブラリからメンテナンス ホストに移動します。 |
VM のシャットダウン | 仮想マシン上のゲスト オペレーティング システムをシャットダウンします。 |
VM の起動 | 停止または一時停止している仮想マシンを起動します。 |
状態 VM の保存 | 仮想マシンの状態を保存してから、仮想マシンを停止します。 |
スクリプト活動 | 説明 |
---|---|
コマンド スクリプト | WF ワークフローの一部としてコマンドライン スクリプトを実行します。 |
VBScript スクリプト | WF ワークフローの一部として VBScript スクリプトを実行します。 |
Windows PowerShell スクリプト | WF ワークフローの一部として Windows PowerShell スクリプトを実行します。 |
Service Manager 活動 | 説明 |
---|---|
インシデントの作成 | このアクティビティを使用して、Service Manager インシデントを作成して設定します。 |
インシデントの取得 | このアクティビティを使用して、1 つ以上の Service Manager インシデントを取得します。 |
インシデントの更新 | このアクティビティを使用して、プロパティの変更を 1 つの Service Manager インシデントに保存します。 |
活動状態を完了に設定 | このアクティビティを使用して、Service Manager の自動アクティビティの状態を更新します。 |