Festlegen einer Tasksequenzvariablen für die Betriebssystembereitstellung

In Configuration Manager erstellen Sie eine Tasksequenzvariable für die Betriebssystembereitstellung, indem Sie eine instance der SMS_TaskSequence_SetVariableAction Klasse erstellen und sie zu 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 Tasksequenz des Configuration Manager.

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 Erstellen einer Sammlungsvariablen in Configuration Manager und Erstellen einer Computervariablen in Configuration Manager.

Hinweis

Variablen, die mit der SMS_TaskSequence_SetVariableAction-Klasse festgelegt sind, überschreiben Variablen, die an anderer Stelle festgelegt sind. Wenn beispielsweise eine Sammlungsvariable und eine SMS_TaskSequence_SetVariableAction denselben Namen haben, hat der Wert der SMS_TaskSequence_SetVariableAction Variablen 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. Rufen Sie eine Tasksequenz ab, der die Tasksequenzvariable hinzugefügt werden soll. Weitere Informationen finden Sie unter So erstellen Sie eine Tasksequenz für die Betriebssystembereitstellung.

  3. Erstellen Sie eine instance mit SMS_TaskSequence_SetVariableAction.

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

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

Beispiel

Mit der folgenden Beispielmethode werden ein Name und ein Wert für eine Tasksequenzvariable festgelegt.

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 hat die folgenden Parameter:

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

Kompilieren des Codes

Dieses C#-Beispiel erfordert:

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 Sichern von Configuration Manager-Anwendungen finden Sie unter rollenbasierte Verwaltung von Configuration Manager.

Siehe auch

Objekte – ÜbersichtHerstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe von verwaltetem CodeHerstellen einer Verbindung mit einem SMS-Anbieter im Configuration Manager mithilfe von WMI Übersicht über TasksequenzenVerwenden von Tasksequenzvariablen in einer ausgeführten Configuration Manager-Aufgabe SequenzLesen einer Tasksequenz aus einem Tasksequenzpaket