Hinzufügen einer Bedingung zu einem Tasksequenzschritt für die Betriebssystembereitstellung
Bedingungen können einem Betriebssystembereitstellungsschritt (Aktion und Gruppe) in Configuration Manager hinzugefügt werden, indem eine SMS_TaskSequence_Condition Klasseninstanz erstellt und dann dem Schritt zugeordnet wird. Wenn alle Bedingungsopernden erfüllt sind, wird der Schritt verarbeitet. andernfalls nicht. Die Bedingung kann einen oder mehrere Operanden aufweisen, die Instanzen von SMS_TaskSequence_Condition abgeleiteten Klassen sind. Sie geben Operatoren für die Operanden mit Instanzen von SMS_TaskSequence_ConditionOperator an.
So fügen Sie einem Schritt eine Bedingung hinzu
Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Grundlagen des SMS-Anbieters.
Abrufen eines Tasksequenzschrittobjekts. Dies kann ein SMS_TaskSequence_Group-Objekt für eine Gruppe oder ein SMS_TaskSequenceAction abgeleitetes Klassenobjekt für eine Aktion sein. Weitere Informationen finden Sie unter Hinzufügen einer Tasksequenzaktion für die Betriebssystembereitstellung.
Erstellen Sie eine neue Bedingung, indem Sie eine Instanz von
SMS_TaskSequence_Condition
erstellen.Erstellen Sie einen Ausdruck für die Bedingung, indem Sie eine Instanz einer SMS_TaskSequence_ConditionExpression abgeleiteten Klasse erstellen. Beispiel: SMS_TaskSequence_RegistryConditionExpression.
Füllen Sie die Ausdruckseigenschaften auf.
Fügen Sie den Ausdruck der Operanden-Eigenschaft der Bedingung hinzu.
Fügen Sie die Bedingung der Condition-Eigenschaft der Tasksequenzschrittklasse hinzu.
Beispiel
Die folgende Beispielmethode fügt einem angegebenen Schritt eine Bedingung hinzu, die bestimmt, ob der HKEY_LOCAL_MACHINE\MICROSOFT Registrierungsschlüssel vorhanden ist. Der SMS_TaskSequenc_RegistryCondition Ausdruck wird verwendet, um die Bedingung anzugeben.
Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager Codeausschnitten.
Sub AddRegistryCondition (connection, taskSequenceStep)
Dim condition
Dim registryExpression
Dim operands
' Get or create the condition.
if IsNull ( taskSequenceStep.Condition) Then
Set condition = connection.Get("SMS_TaskSequence_Condition").SpawnInstance_
Else
Set condition = taskSequenceStep.Condition
End If
' Populate the condition.
Set registryExpression=connection.Get("SMS_TaskSequence_RegistryConditionExpression").SpawnInstance_
registryExpression.KeyPath="HKEY_LOCAL_MACHINE\MICROSOFT"
registryExpression.Operator="exists"
registryExpression.Type="REG_SZ"
registryExpression.Data=Null
' Add the condition.
operands=Array(registryExpression)
condition.Operands=operands
taskSequenceStep.Condition=condition
End Sub
public void AddRegistryCondition(
WqlConnectionManager connection,
IResultObject taskSequenceStep)
{
try
{
IResultObject condition;
if (taskSequenceStep["Condition"].ObjectValue == null)
{
// Create a new condition.
condition = connection.CreateEmbeddedObjectInstance("SMS_TaskSequence_Condition");
}
else
{ // Get the existing condition.
condition = taskSequenceStep.GetSingleItem("Condition");
}
// Create and populate the expression.
IResultObject registryExpression = connection.CreateEmbeddedObjectInstance("SMS_TaskSequence_RegistryConditionExpression");
registryExpression["KeyPath"].StringValue = @"HKEY_LOCAL_MACHINE\MICROSOFT";
registryExpression["Operator"].StringValue = "exists";
registryExpression["Type"].StringValue = "REG_SZ";
registryExpression["Data"].StringValue = null;
// Get the operands and add the expression.
List<IResultObject> operands = condition.GetArrayItems("Operands");
operands.Add(registryExpression);
// Add the expresssion to the list of operands.
condition.SetArrayItems("Operands", operands);
// Add the condition to the sequence.
taskSequenceStep.SetSingleItem("Condition", condition);
}
catch (SmsException e)
{
Console.WriteLine("Failed to create Task Sequence: " + e.Message);
throw;
}
}
Die Beispielmethode verfügt über die folgenden Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
connection |
-Verwalteten: WqlConnectionManager – VBScript: SWbemServices |
Eine gültige Verbindung mit dem SMS-Anbieter. |
taskSequenceStep |
-Verwalteten: IResultObject – VBScript: SWbemObject |
Ein gültiger Tasksequenzschritt (SMS_TaskSequenceStep). |
Kompilieren des Codes
Das C#-Beispiel hat die folgenden Kompilierungsanforderungen:
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: Hinzufügen einer Tasksequenzaktion für die Betriebssystembereitstellung
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
Übersicht über Aufgabensequenzen