次の方法で共有


オペレーティング システム展開タスク シーケンス変数を設定する方法

Configuration Managerでは、SMS_TaskSequence_SetVariableAction クラスのインスタンスを作成し、タスク シーケンスに追加することで、オペレーティング システム展開タスク シーケンス変数を作成します。 タスク シーケンスの実行中にタスク シーケンス変数を作成することもできます。 詳細については、「実行中のConfiguration Managerタスク シーケンスでタスク シーケンス変数を使用する方法」を参照してください。

タスク シーケンス変数は、タスク シーケンスの手順でアクセスできる名前と値のペアです。 また、コンピューターとコレクション固有の変数を作成することもできます。 詳細については、「Configuration Managerでコレクション変数を作成する方法」と「Configuration Managerでコンピューター変数を作成する方法」を参照してください。

注:

SMS_TaskSequence_SetVariableAction クラスで設定された変数は、他の場所に設定されている変数をオーバーライドします。 たとえば、コレクション変数とSMS_TaskSequence_SetVariableActionの名前が同じ場合、SMS_TaskSequence_SetVariableAction変数の値が優先されます。

タスク シーケンス変数を設定するには

  1. SMS プロバイダーへの接続を設定します。 詳細については、「 SMS プロバイダーの基礎」を参照してください。

  2. タスク シーケンス変数を追加するタスク シーケンスを取得します。 詳細については、「 オペレーティング システム展開タスク シーケンスを作成する方法」を参照してください。

  3. SMS_TaskSequence_SetVariableActionのインスタンスを作成します。

  4. 追加する変数の VariableName プロパティと VariableValue プロパティを設定します。

  5. タスク シーケンスに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
タスク シーケンス パッケージからタスク シーケンスを読み取る方法