Freigeben über


Festlegen einer Tasksequenzvariable für die Betriebssystembereitstellung

In Configuration Manager erstellen Sie eine Tasksequenzvariable für die Betriebssystembereitstellung, indem Sie eine Instanz der SMS_TaskSequence_SetVariableAction-Klasse erstellen und einer Tasksequenz hinzufügen. Sie können auch Tasksequenzvariablen erstellen, während die Tasksequenz auf dem Client ausgeführt wird. Weitere Informationen finden Sie unter Verwenden von Tasksequenzvariablen in einer ausgeführten Configuration Manager Tasksequenz.

Eine Tasksequenzvariable ist ein Name-Wert-Paar, auf das Sie über Tasksequenzschritte zugreifen können. Sie können auch computer- und sammlungsspezifische Variablen erstellen. Weitere Informationen finden Sie unter How to Create a Collection Variable in Configuration Manager und How to Create a Computer Variable in Configuration Manager.

Hinweis

Variablen, die mit der SMS_TaskSequence_SetVariableAction Klasse festgelegt werden, überschreiben Variablen, die an anderer Stelle festgelegt sind. Wenn beispielsweise eine Auflistungsvariable und eine SMS_TaskSequence_SetVariableAction denselben Namen haben, hat der Wert der SMS_TaskSequence_SetVariableAction Variable Vorrang.

So legen Sie eine Tasksequenzvariable fest

  1. Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Grundlagen des SMS-Anbieters.

  2. Ruft eine Tasksequenz ab, der die Tasksequenzvariable hinzugefügt werden soll. Weitere Informationen finden Sie unter Erstellen einer Tasksequenz für die Betriebssystembereitstellung.

  3. Erstellen Sie eine Instanz von SMS_TaskSequence_SetVariableAction.

  4. Legen Sie die Eigenschaften VariableName und VariableValue für die Variable fest, die Sie hinzufügen.

  5. Fügen Sie der Tasksequenz das SMS_TaskSequence_SetVariableAction-Objekt hinzu.

Beispiel

Die folgende Beispielmethode legt den Namen und den Wert einer Tasksequenzvariablen fest.

Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager Codeausschnitten.

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;  
    }  
}  

Diese Beispielmethode weist die folgenden Parameter auf:

Parameter Typ Beschreibung
connection -Verwalteten: WqlConnectionManager
– VBScript: SWbemServices
– Eine gültige Verbindung mit dem SMS-Anbieter.
taskSequence -Verwalteten: WqlConnectionManager
-Vbscript: SWbemServices
– Die Tasksequenz, der die Variable hinzugefügt wird.
variableName -Verwalteten: String
-Vbscript: String
Der Name der Variablen.
variableValue -Verwalteten: String
-Vbscript: String
Der Wert für die Variable.

Kompilieren des Codes

Für dieses C#-Beispiel ist Folgendes erforderlich:

Namespaces

System

System.Collections.Generic

System.Text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Robuste Programmierung

Weitere Informationen zur Fehlerbehandlung finden Sie unter Informationen zu Configuration Manager Fehlern.

.NET Framework-Sicherheit

Weitere Informationen zum Schützen Configuration Manager Anwendungen finden Sie unter Configuration Manager rollenbasierte Verwaltung.

Siehe auch

Objektübersicht: Herstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe von verwaltetem Code
Herstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe von WMI
Tasksequenzübersicht: Verwenden von Tasksequenzvariablen in einer ausgeführten Configuration Manager Tasksequenz
Lesen einer Tasksequenz aus einem Tasksequenzpaket