Configuration Manager のタスク シーケンスは、クライアントの展開中にカスタム アクション操作を実行します。 アプリケーションには、プロセス、スクリプト、またはその他のコマンドを指定できます。 アプリケーションの要件は、Managed Object Format (MOF) ファイルで定義されています。 要件の例としては、オペレーティング環境、コマンド ライン引数、プロパティ、リターン コードなどがあります。 アクションが処理されると、タスク シーケンス環境に追加されます。
カスタム アクションの MOF ファイル
カスタム アクションの MOF ファイルは、次の例のようになります。
[ CommandLine("smsswd.exe /run:%1 abc.exe %2"),
: (custom ui control and category qualifiers for action)
]
class MyCustomAction : SMS_TaskSequence_Action
{
[TaskSequencePackage, CommandLineArg(1)]
string PackageIDForAbcExe;
[CommandLineArg(2), AllowedLen("1-32000")]
string AbcCommandLineArgs;
[SuccessCodes, Not_Null]
string AbcSuccessCodes = "0 3010";
string SomeOtherPropertyThatAbcNeeds;
string SupportedEnvironment = "WinPEandFullOS";
};
MOF ファイルには、カスタム アクション アプリケーションの入力、環境、プロパティ、およびデプロイ パッケージの情報に必要な情報が記述されています。
詳細については、「Configuration Manager カスタム アクション MOF ファイルについて」を参照してください。
アプリケーション入力
カスタム アクションは無人で実行する必要があるため、アプリケーションでユーザー入力を求めないでください。 すべての入力は、コマンド ライン、タスク シーケンス環境、またはデータ ファイルから受け取る必要があります。
アクション アプリケーションのコマンド ラインは、組み込みアクションの コマンド ラインの実行 アクションを使用して、MOF ファイルで設定されます。
例:
CommandLine("smsswd.exe /run:PackageID abc.exe [any abc.exe command line args]"
アプリケーション処理
タスク シーケンス アプリケーションは、カスタム アクション操作を実行します。 動作環境を認識し、タスク シーケンス環境変数、レポートの進行状況、および完了コードの返品にアクセスできる必要があります。
環境
MOF ファイルでは、 SMS_TaskSequence_Action Server WMI ClassSupportedEnvironment プロパティで動作環境を指定する必要があります。 利用可能な環境は、Windows PE (WinPE)、完全なオペレーティング システム (FullOS)、または両方の環境 (WinPEandFullOS) です。
環境の選択は状況によって異なります。 たとえば、プレオペレーティング インストール構成は、Windows PE 環境で実行される可能性があります。 詳細については、「 OS 展開のインフラストラクチャ要件」を参照してください。 現在インストールされているオペレーティング システムへの Updates では、完全なオペレーティング システム環境が使用されます。 たとえば、ソフトウェアやドライバーのインストールなどです。 再起動やネットワーク接続の作成など、オペレーティング システム環境に依存しないタスクは、両方の環境設定を使用して実行できます。
Processing
処理中は、 TSEnvironment COM オートメーション オブジェクトを使用して、MOF ファイルによって定義されたタスク シーケンスの変数にアクセスします。 詳細については、「実行中の Configuration Manager タスク シーケンスでタスク シーケンス変数を使用する方法」を参照してください。
操作に時間がかかる場合は、 ProgressUI クライアント COM オートメーション クラスを使用して、タスク シーケンス環境に進捗状況を報告し、進捗インジケーターを表示できます。 詳細については、「Configuration Manager カスタム アクションの進行状況のレポートについて」を参照してください。
完了
アプリケーションは、完了時に戻り値として SuccessCodes 環境変数を設定する必要があります。
| Return | 説明 |
|---|---|
| 0 | 成功 |
| 0 以外の値 | 失敗 |
アプリケーションの終了後に再起動が必要な場合は、 SMSTSRebootRequested 環境変数を設定する必要があります。 詳細については、「 タスク シーケンスの変数」を参照してください。 環境変数の設定については、「実行中の Configuration Manager タスク シーケンスでタスク シーケンス変数を使用する方法」を参照してください。
展開
Configuration Manager で使用するには、カスタム アクション アプリケーションが Configuration Manager パッケージから利用可能である必要があります。 管理者は、Configuration Manager コンソールまたはプログラミング言語を使用してパッケージを作成できます。 詳細については、「 パッケージを作成する方法」を参照してください。
配置を機能させるには、パッケージ ID が使用可能である必要があります。 通常、MOF ファイルは、次の例のように、それを保持するプロパティを宣言します。
[TaskSequencePackage, CommandLineArg(1)]
string PackageIDForAbcExe;
注:
パッケージ ID は、 SMS_Package Server WMI ClassPackageID プロパティです。
パッケージ識別子は、カスタム アクションがタスク シーケンス エディターで編集されたときに管理者から取得されます。
この動作を有効にするために、カスタム アクション コントロールの実装でテキスト編集コントロールを使用して、管理者からパッケージ識別子を取得できます。 テキスト コントロールを使用する例については、「Configuration Manager カスタム アクション コントロールを作成する方法」を参照してください。
管理者が使用する場合、カスタム アクション コントロールは、タスク シーケンス エディターを使用してタスク シーケンスの一部として編集されます。 タスク シーケンス エディターによって保存されると、カスタム アクションを含むタスク シーケンスを保持するために SMS_TaskSequencePackage Server WMI クラス が作成されます。
その後、タスク シーケンス パッケージは、カスタム アクションによって参照されるカスタム アクション パッケージと共にクライアントにアドバタイズされます。 詳細については、「 提供情報の作成方法」を参照してください。
カスタム操作がクライアントで実行されると、カスタム操作のパッケージ識別子がコマンドライン パラメーターとして提供されます。そこからカスタム操作のバイナリ ファイルが抽出され、実行されます。
パッケージ ID は、 /run コマンド ライン パラメーターを使用して Smsswd.exe することで提供されます。
事前ネットワーク パーティションと事前パーティション設定
ディスク パーティションを用意する前、およびネットワーク接続を用意する前にディスクまたはネットワーク接続を構成する必要がある場合は、これらのタスクを実行するアプリケーションを作成する必要があります。 アプリケーションは、Windows アセスメント&デプロイメント キット (ADK) を使用してカスタム ブート イメージに配置する必要があります。 詳細については、「IT 担当者向けの Windows ADK シナリオ」を参照してください。
注:
ブート イメージ ファイルにファイルを追加すると、RAM の最小要件が増加し、メモリ不足が原因でタスク シーケンスが予期しない方法で失敗する可能性があります。
次に、イメージをカスタム イメージとして Configuration Manager にインポートします。 詳細については、「 ブート イメージの追加」を参照してください。
アプリケーション、サポート ファイル、およびカスタム SMSTS.INI は、Windows フォルダーに配置する必要があります。
アプリケーションを使用するには、事前パーティション/ネットワーク手順を含むタスク シーケンスでカスタム ブート イメージを使用します。