実行中の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配列です。 次は、1 つの要素 OSDPartitions Array を表します。

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

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

  • 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 プロバイダーに接続する方法
タスク シーケンスの概要オペレーティング システム展開タスク シーケンス変数を設定する方法