Configuration Manager では、SMS_TaskSequence_SetVariableAction クラスのインスタンスを作成し、タスク シーケンスに追加することで、オペレーティング システム展開タスク シーケンス変数を作成します。 クライアントでタスク シーケンスの実行中にタスク シーケンス変数を作成することもできます。 詳細については、「実行中の Configuration Manager タスク シーケンスでタスク シーケンス変数を使用する方法」を参照してください。
タスク シーケンス変数は、タスク シーケンスのステップごとにアクセスできる名前と値のペアです。 コンピューター固有の変数とコレクション固有の変数を作成することもできます。 詳細については、「Configuration Manager でコレクション変数を作成する方法」および「Configuration Manager でコンピューター変数を作成する方法」を参照してください。
注:
SMS_TaskSequence_SetVariableAction クラスで設定された変数は、他の場所で設定された変数をオーバーライドします。 たとえば、コレクション変数と SMS_TaskSequence_SetVariableAction が同じ名前の場合、SMS_TaskSequence_SetVariableAction変数の値が優先されます。
タスク シーケンス変数を設定するには
SMS プロバイダーへの接続をセットアップします。 詳細については、「 SMS プロバイダーの基礎」を参照してください。
タスク シーケンス変数を追加するタスク シーケンスを取得します。 詳細については、「 オペレーティング システム展開タスク シーケンスを作成する方法」を参照してください。
SMS_TaskSequence_SetVariableAction のインスタンスを作成します。
追加する変数の VariableName プロパティと VariableValue プロパティを設定します。
タスク シーケンスに SMS_TaskSequence_SetVariableAction オブジェクトを追加します。
例
次の例では、タスク シーケンス変数の名前と値を設定します。
サンプル コードの呼び出しの詳細については、「Configuration Manager コード スニペットの呼び出し」を参照してください。
Sub AddTaskSequenceVariable(connection, taskSequence, variableName, variableValue)
Dim variable
Dim steps
Set variable = connection.Get("SMS_TaskSequence_SetVariableAction").SpawnInstance_
variable.Name="MyTaskSequenceVariable"
variable.Description = "A task sequence variable"
variable.Enabled=True
variable.ContinueOnError=False
variable.VariableName=variableName
variable.VariableValue=variableValue
steps= Array(taskSequence.Steps)
ReDim steps (UBound (taskSequence.Steps)+1)
taskSequence.Steps(UBound(steps))=variable
End Sub
public void AddTaskSequenceVariable(
WqlConnectionManager connection,
IResultObject taskSequence,
string variableName,
string variableValue)
{
try
{
// Create the task sequence variable object.
IResultObject variable = connection.CreateEmbeddedObjectInstance("SMS_TaskSequence_SetVariableAction");
// Populate the properties.
variable["Name"].StringValue = "MyTaskSequenceVariable";
variable["ContinueOnError"].BooleanValue = false;
variable["Description"].StringValue = "A task sequence variable set with SMS_TaskSequence_SetVariableAction";
variable["Enabled"].BooleanValue = true;
variable["VariableName"].StringValue = variableName;
variable["VariableValue"].StringValue = variableValue;
// Add the step to the task sequence.
List<IResultObject> array = taskSequence.GetArrayItems("Steps");
array.Add(variable);
taskSequence.SetArrayItems("Steps", array);
}
catch (SmsException e)
{
Console.WriteLine("Failed to set task sequence variable: " + e.Message);
throw;
}
}
この例のメソッドには、次のパラメータがあります:
| パラメーター | 型 | 説明 |
|---|---|---|
connection |
- 管理対象: WqlConnectionManager- VBScript: SWbemServices |
- SMS プロバイダーへの有効な接続。 |
taskSequence |
- 管理対象: WqlConnectionManager- VBScript: SWbemServices |
- 変数が追加されるタスク シーケンス。 |
variableName |
- 管理対象: String- VBScript: String |
変数の名前。 |
variableValue |
- 管理対象: String- VBScript: String |
変数の値。 |
コードのコンパイル
この C# の例では、次のものが必要です。
名前空間
System
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
Microsoft.ConfigurationManagement.ManagementProvider
adminui.wqlqueryengine
堅牢なプログラミング
エラー処理の詳細については、「Configuration Manager のエラーについて」を参照してください。
.NET Framework のセキュリティ
Configuration Manager アプリケーションのセキュリティ保護の詳細については、「Configuration Manager ロールベースの管理」を参照してください。
関連項目
オブジェクトの概要マネージ コードを使用して Configuration Manager の SMS プロバイダーに接続する方法WMI を使用して Configuration Manager の SMS プロバイダーに接続する方法タスク シーケンスの概要 実行中の Configuration Manager タスクでタスク シーケンス変数を使用する方法シーケンス: タスク シーケンス パッケージからタスク シーケンスを読み取る方法