オペレーティング システム展開タスク シーケンス変数を設定する方法
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
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
エラー処理の詳細については、「Configuration Manager エラーについて」を参照してください。
Configuration Manager アプリケーションのセキュリティ保護の詳細については、「ロールベースの管理Configuration Manager」を参照してください。
オブジェクトの概要マネージド コードを使用してConfiguration Managerで SMS プロバイダーに接続する方法
WMI を使用してConfiguration Managerで SMS プロバイダーに接続する方法
タスク シーケンスの概要実行中のタスク シーケンスでタスク シーケンス変数を使用する方法Configuration Manager
タスク シーケンス パッケージからタスク シーケンスを読み取る方法