次の方法で共有


タスク シーケンス変数について

適用対象: System Center Configuration Manager 2007, System Center Configuration Manager 2007 R2, System Center Configuration Manager 2007 R3, System Center Configuration Manager 2007 SP1, System Center Configuration Manager 2007 SP2

Configuration Manager 2007 のタスク シーケンス環境変数は、一連の名前と値のペアであり、コンピュータ、オペレーティング システム、および Configuration Manager 2007 のクライアント コンピュータのユーザー状態構成タスクに、構成およびオペレーティング システム展開設定を指定します。タスク シーケンス変数は、タスク シーケンスの手順の構成およびカスタマイズを行うメカニズムです。

Configuration Manager 2007 の管理コンソールでタスク シーケンスを作成すると、タスク シーケンスは一連の手順として保存されます。タスク シーケンスの手順、およびタスク シーケンスの関連設定は、タスク シーケンス エディタを使用して編集できます。タスク シーケンスを実行すると、多くのタスク シーケンス設定は環境変数として保存されます。組み込みタスク シーケンス変数の値は、アクセスしたり変更したりすることができます。また、新しいタスク シーケンス変数を作成して、タスク シーケンスを対象のコンピュータで実行する方法をカスタマイズすることもできます。

タスク シーケンス環境でタスク シーケンス変数を使用して、次の操作を実行できます。

  • タスク シーケンスの操作の設定を構成します。

  • タスク シーケンスの手順にコマンド ライン引数を指定します。

  • タスク シーケンスの手順またはグループを実行するかどうかを判断する条件を評価します。

  • タスク シーケンスで使用されるカスタム スクリプトに値を提供します。

たとえば、ドメインまたはワークグループへの参加のタスク シーケンス手順がタスク シーケンスに含まれており、ドメイン メンバシップによってコレクション メンバシップが決まる、さまざまなコレクションにこのタスク シーケンスを提供するとします。この場合は、コレクションのドメイン名ごとにコレクションごとのタスク シーケンス変数を指定し、そのタスク シーケンス変数を使用して、タスク シーケンスで適切なドメイン名を提供できます。

タスク シーケンス変数の作成

新しいタスク シーケンス変数を追加して、タスク シーケンスの手順のカスタマイズおよび制御を行うことができます。たとえば、タスク シーケンス変数を作成し、組み込みタスク シーケンス手順の設定を無効にすることができます。また、カスタム タスク シーケンス変数を作成し、タスク シーケンスの条件、コマンド ライン、またはカスタム手順で使用することもできます。タスク シーケンス変数を作成すると、そのシーケンスによって対象のコンピュータが再起動されても、タスク シーケンス変数および関連する値が、タスク シーケンス環境内に維持されます。変数およびその値は、さまざまな環境間のタスク シーケンス内で使用できます。たとえば、完全な Windows オペレーティング システムと Windows プレインストール環境などです。

次の表では、タスク シーケンス環境変数を作成する方法を示し、各方法の違いについて説明します。

作成方法 使用法の概要

タスク シーケンス エディタを使用してタスク シーケンス手順のフィールドを設定

タスク シーケンス手順に設定される既定値を指定します。変数および値は、タスク シーケンスで手順を実行するときだけアクセス可能になります。変数および値はシーケンス環境全体に属しておらず、タスク シーケンスのその他のタスク シーケンス手順ではこの変数と値にアクセスできません。

組み込み変数およびその関連操作については、「オペレーティング システム展開のタスク シーケンス変数」を参照してください。

タスク シーケンスでタスク シーケンス変数を設定する手順を追加

タスク シーケンス手順をタスク シーケンスの一部として実行するとき、タスク シーケンス環境でタスク シーケンス変数と値を指定します。その後のすべてのタスク シーケンス手順は、環境変数とその値にアクセスできます。

コレクションごとの変数を定義

コンピュータのコレクションに、タスク シーケンスと値を指定します。コレクションを対象とするすべてのタスク シーケンスは、このタスク シーケンス変数とその値にアクセスできます。

コンピュータごとの変数を定義

特定のコンピュータのタスク シーケンス変数および値を指定します。コンピュータを対象とするすべてのタスク シーケンスは、このタスク シーケンス変数とその値にアクセスできます。

タスク シーケンス メディア ウィザードの[変数]ページでタスク シーケンス変数を追加

タスク シーケンス変数とその値にアクセス可能なメディアから実行するタスク シーケンスの変数と値を指定します。

組み込みタスク シーケンス変数の既定値を無効にするには、組み込みタスク シーケンス変数と同じ名前のタスク シーケンス変数を定義する必要があります。組み込みタスク シーケンス変数の一覧、およびその関連操作と使用法については、「オペレーティング システム展開のタスク シーケンス変数」を参照してください。

タスク シーケンス変数の作成と同じ方法により、タスク シーケンス環境からタスク シーケンス変数を削除できます。タスク シーケンス環境から変数を削除するには、タスク シーケンス変数値を空の文字列に設定します。

この方法を組み合わせて、同じシーケンスでタスク シーケンス環境変数をさまざまな値に設定できます。さらに上級向けのシナリオでは、[タスク シーケンス エディタ]を使用してシーケンスの手順に既定値を設定してから、それぞれの作成方法を使用してカスタム変数値を設定できます。次に、複数の方法でタスク シーケンス変数が作成された場合に、どの値が使用されるかを決定する規則について説明します。

  1. [タスク シーケンス変数の設定]では、その他すべての作成方法が無効になります。

  2. コンピュータごとの変数は、コレクションごとの変数より優先されます。コンピュータごとの変数およびコレクションごとの変数に同じタスク シーケンス変数名を指定すると、提供されたタスク シーケンスを対象のコンピュータが実行するとき、コンピュータごとの変数値が使用されます。

  3. タスク シーケンスはスタンドアロン メディアから実行できます。コレクションごとの変数またはコンピュータごとの変数の代わりに、メディア変数を使用してください。タスク シーケンスをスタンドアロン メディアから実行している場合、コンピュータごとの変数およびコレクションごとの変数は適用されず、使用されません。その代わりに、タスク シーケンス メディア ウィザードの[変数]ページで定義したタスク シーケンス変数が使用され、メディアから実行しているタスク シーケンスに固有の値が設定されます。

  4. タスク シーケンス変数値をシーケンス環境全体で設定しない場合、組み込み操作では、[タスク シーケンス エディタ]で設定された手順の既定値が使用されます。

組み込みタスク シーケンス手順の設定の値を無効にできるだけでなく、新しい環境変数を作成して、タスク シーケンス手順、スクリプト、コマンド ライン、または条件で使用することもできます。新しいタスク シーケンス変数の名前を指定する場合は、従わなければならないガイドラインがいくつかあります。

次のセクションではこれらのガイドラインについて説明し、有効なタスク シーケンス変数名および無効なタスク シーケンス変数名の例を挙げます。

  • 指定するタスク シーケンス変数名には、文字、数字、下線 (_)、およびハイフン (-) を含めることができます。

  • タスク シーケンス変数名の最低の長さは 1 文字、最大の長さは 256 文字です。

  • ユーザー定義変数は文字 (A-Z) で始まる必要があります。

  • ユーザー定義変数名を下線で始めることはできません。読み取り専用タスク シーケンス変数のみを下線で始めることができます。

    注意

    読み取り専用タスク シーケンス変数はタスク シーケンスのタスク シーケンス手順で読み取ることができますが、設定することはできません。たとえば、[コマンド ラインの実行]タスク シーケンス操作のコマンド ラインの一部として読み取り専用タスク シーケンス変数を使用できますが、[タスク シーケンス変数の設定]操作を使用して読み取り専用変数を設定することはできません。

  • タスク シーケンス変数名では大文字と小文字が区別されません。たとえば、OSDVAR と osdvar は同一タスク シーケンス変数になります。

  • タスク シーケンス変数名をスペースで始めたり終わらせたりすることはできず、変数名にスペースを埋め込むこともできません。タスク シーケンス変数名の先頭または末尾のスペースは読み取られません。

  • 有効/無効なユーザー指定タスク シーケンス変数の例を、次の表に示します。

有効なユーザー指定変数名の例 無効なユーザー指定変数名の例

MyVariable

1Variable

注意

ユーザー指定タスク シーケンス変数を数字で始めることはできません。

My_Variable

MyV@riable

注意

ユーザー指定タスク シーケンス変数に @ 文字を含めることはできません。

My_Variable_2

_MyVariable

注意

ユーザー指定タスク シーケンス変数を下線で始めることはできません。

タスク シーケンス変数の作成時の一般的な制限は次のとおりです。

  • タスク シーケンス変数の値は、4000 文字を超えることはできません。

  • 読み取り専用タスク シーケンス変数を作成したり無効にしたりすることはできません。読み取り専用変数の名前は、下線 (_) で始まります。読み取り専用タスク シーケンス変数の値にはタスク シーケンス内でアクセスできますが、関連する値を変更することはできません。

  • タスク シーケンス変数はいくつでも作成できますが、タスク シーケンス環境の合計サイズが 10 MB を超えることはできません。

タスク シーケンス環境変数へのアクセス

前セクションの方法のいずれかによってタスク シーケンス変数とその値を指定したら、タスク シーケンス内で環境変数の値を使用できます。組み込みタスク シーケンス変数の既定値にアクセスしたり、組み込み変数に新しい値を指定したり、コマンド ラインまたはスクリプトでカスタム タスク シーケンス変数を使用したりすることができます。

次の表では、タスク シーケンス環境変数にアクセスして実行できるタスク シーケンス操作について概説します。

タスク シーケンス操作 使用法の概要

操作設定を構成

シーケンスの実行時に、タスク シーケンス手順を変数値によって設定するように指定できます。

タスク シーケンス手順の設定をタスク シーケンス環境変数で指定するには、[タスク シーケンス エディタ]を使用して手順を編集し、フィールド値として変数名を指定します。変数名はパーセント記号 (%) で囲み、環境変数であることを示す必要があります。

コマンド ライン引数を指定

環境変数の値を使用して、カスタム コマンド ラインの一部またはすべてを指定できます。

環境変数を使用してコマンド ライン設定を指定するには、[コマンド ラインの実行]タスク シーケンス手順のコマンド ライン フィールドの一部として変数名を使用します。変数名はパーセント記号 (%) で囲む必要があります。

例:

次のコマンド ラインでは、組み込み環境変数を使用して、コンピュータ名を C:\File.txt. に書き込んでいます。

Cmd /C %_SMSTSMachineName% > C:\File.txt

手順の条件を評価

組み込みタスク シーケンス環境変数またはカスタム タスク シーケンス環境変数を、タスク シーケンス手順またはグループの条件の一部として使用できます。環境変数の値は、タスク シーケンスの手順またはグループを Configuration Manager 2007 コンピュータで実行する前に評価されます。

変数値を評価する条件を追加するには、シーケンスの手順またはグループを選択し、[オプション]タブの[条件の追加]ドロップダウンを使用します。タスク シーケンス変数の条件を選択し、評価する変数と値を指定してください。

カスタム スクリプトの情報を指定

タスク シーケンス変数は、タスク シーケンスの実行中に、Microsoft.SMS.TSEnvironment COM オブジェクトを使用して読み書きできます。

次の例は、_SMSTSLogPath タスク シーケンス変数を照会して現在のログの場所を取得する Visual Basic スクリプト ファイルを示しています。このスクリプトではカスタム変数も設定されます。

dim osd: set env = CreateObject("Microsoft.SMS.TSEnvironment")

dim logPath

' You can query the environment to get an existing variable.

logPath = env("_SMSTSLogPath")

' You can also set a variable in the OSD environment.

env("MyCustomVariable") = "varname"

タスク シーケンス変数をスクリプトで使用する方法については、SDK のマニュアルを参照してください。

コンピュータ変数およびコレクション変数

複数のコンピュータまたはコレクションで同時に実行するように、タスク シーケンスを構成できます。一意のオペレーティング システム製品キーを指定したり、コレクションのすべてのメンバを指定ドメインに参加させたりというように、コンピュータごとまたはコレクションごとの一意の情報を指定できます。

タスク シーケンス変数は、単一のコンピュータまたはコレクションに割り当てることができます。タスク シーケンスの実行が対象のコンピュータまたはコレクションで始まると、指定した値は対象のコンピュータまたはコレクションに適用されます。

タスク シーケンス変数は、単一のコンピュータまたはコレクションに指定できます。タスク シーケンスの実行が対象のコンピュータまたはコレクションで始まると、指定した変数は環境に追加され、値はタスク シーケンスのすべてのタスク シーケンス手順で使用できるようになります。

重要

コレクションごとの変数およびコンピュータごとの変数の両方に同一変数名を使用すると、コンピュータ変数の値がコレクション変数より優先されます。コレクションに割り当てたタスク シーケンス変数は、組み込みタスク シーケンス変数より優先されます。

単一のコンピュータまたはコレクションにタスク シーケンス変数を作成する方法については、次のトピックを参照してください。

タスク シーケンス メディア変数

タスク シーケンス変数は、CD/DVD セットや USB ドライブなどのメディアに保存してそこから実行するタスク シーケンスに指定できます。タスク シーケンスを含むメディアの作成時に、タスク シーケンス変数を追加してその値を指定します。変数とその値は、タスク シーケンスと共にメディアに保存されます。

重要

タスク シーケンスをメディアから実行するとき、すべてのカスタム タスク シーケンス変数の情報がメディアに含まれている必要があります。メディアから実行するタスク シーケンスで、コレクションごとの変数およびコンピュータごとの変数を使用することはできません。

タスク シーケンス メディア ウィザードの[変数]ページで、タスク シーケンス変数を指定できます。タスク シーケンス メディアの使用法については、「タスク シーケンス メディア ウィザード」を参照してください。

タスク シーケンス変数の一覧

組み込みタスク シーケンス変数の一覧については、「タスク シーケンス変数」を参照してください。

参照:

タスク

タスク シーケンス変数をコレクションごとに作成する方法
コンピュータごとのタスク シーケンス変数の作成方法

概念

オペレーティング システム展開のタスク シーケンス変数