実行中の Configuration Manager タスク シーケンスでタスク シーケンス変数を使用する方法

Configuration Manager では、タスク シーケンス環境の COM 自動化オブジェクト (Microsoft.SMS.TSEnvironment) を使用して、実行中のタスク シーケンスでタスク シーケンス変数を作成、取得、および設定できます。

通常は、スクリプトを実行するコマンド ライン アクションを使用して、タスク シーケンスの変数にアクセスします。 ただし、実行中のタスク シーケンスの中で、COM オートメーション オブジェクトを使用できる任意のプログラミング環境を使用して、それらにアクセスすることもできます。

注:

Configuration Manager クライアントでタスク変数を設定すると、タスク シーケンスの以降のステップで使用できるようになります。

カスタム タスク シーケンス変数を作成するには、作成する新しい変数の名前を使用して Microsoft.SMS.TSEnvironment プロパティを設定します。 変数がまだ存在しない場合は、作成されます。 変数が既に存在する場合は、その値が更新されます。 後でカスタム変数の値を Microsoft.SMS.TSEnvironment から取得できます。

タスク シーケンス変数が配列の場合は、次の形式で渡されます。

<base array name><element #><Property>="value".

たとえば、 OSDPartitions 変数は SMS_TaskSequencePartitionSettings の配列です。 次の例は、配列 OSDPartitions 1 つの要素を表しています。

OSDPartitions0Bootable="true"
OSDPartitions0FileSystem="NTFS"
OSDPartition0QuickFormat="false"
OSDPartitions0Size="100"
OSDPartitions0SizeUnits="Percent"
OSDPartitions0Type="Primary"

この配列内の FileSystem にアクセスするには、 OSDPartitions0FileSystem を使用します。 配列が大きい場合は、2 番目の要素に OSDPartitions1FileSystem などを使用します。

次の環境ではマネージド コードを使用できないため、タスク シーケンス環境でマネージド コードを使用することはお勧めしません。

  • Windows PE

  • Windows Server 2008

  • Windows 2000

    正しいバージョンの .NET Framework がインストールされた状態で完全なオペレーティング システムが実行されている場合、マネージ コードは機能します。

    必要な .NET Framework のバージョンは、お使いの Visual Studio のバージョンによって異なります。

Visual Studio .NET Framework のバージョン
Visual Studio 2003 1.0
Visual Studio 2005 2.0
Visual Studio 2008 2.0 から 3.5

TSEnvironment オブジェクトにアクセスするには、COM 相互運用を使用する必要があります。 以下のものが必要です。

  • TSEnvironment 1.0 タイプ ライブラリへの参照。

  • TSEnvironmentLib 名前空間。

実行中のタスク シーケンスでタスク変数を使用するには

  1. 実行中のタスク シーケンスで、 Microsoft.SMS.TSEnvironment のインスタンスを作成します。

  2. 必要な環境変数を取得または設定します。

次の例では、 _SMSTSLogPath 変数を取得します。 また、カスタム変数の値と配列カスタム変数の値も設定します。

サンプル コードの呼び出しの詳細については、「Configuration Manager コード スニペットの呼び出し」を参照してください。

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

   ' You can query the environment to get an existing variable.
   logPath = env("_SMSTSLogPath")

    wscript.echo logPath

   ' You can also set a variable in the Operating System Deployment environment.
   env("MyCustomVariable") = "My Custom Value"

   ' Set the OSDPartitions(0) Bootable array member to 0.
    env("OSDPartitions0Bootable") = "true"
End Sub

コードのコンパイル

プラットフォーム

オペレーティング システムの展開タスクの順序付け環境

堅牢なプログラミング

エラー処理の詳細については、「Configuration Manager のエラーについて」を参照してください。

.NET Framework のセキュリティ

Configuration Manager アプリケーションのセキュリティ保護の詳細については、「Configuration Manager ロールベースの管理」を参照してください。

関連項目

オブジェクトの概要マネージ コードを使用して Configuration Manager の SMS プロバイダーに接続する方法WMI を使用して Configuration Manager の SMS プロバイダーに接続する方法タスク シーケンスの概要オペレーティング システム展開タスク シーケンス変数を設定する方法