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