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
Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Grundlagen des SMS-Anbieters.
Ruft eine Tasksequenz ab, der die Tasksequenzvariable hinzugefügt werden soll. Weitere Informationen finden Sie unter Erstellen einer Tasksequenz für die Betriebssystembereitstellung.
Erstellen Sie eine Instanz von SMS_TaskSequence_SetVariableAction.
Legen Sie die Eigenschaften VariableName und VariableValue für die Variable fest, die Sie hinzufügen.
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