Een voorwaarde toevoegen aan een takenreeksstap voor een besturingssysteemimplementatie
Voorwaarden kunnen worden toegevoegd aan een implementatiestap van een besturingssysteem (actie en groep) in Configuration Manager door een SMS_TaskSequence_Condition klasse-exemplaar te maken en deze vervolgens te koppelen aan de stap. Als aan de voorwaarde operanden wordt voldaan, wordt de stap verwerkt; anders niet. De voorwaarde kan een of meer operanden hebben die exemplaren zijn van SMS_TaskSequence_Condition afgeleide klassen. U geeft operatoren op voor de operanden met exemplaren van SMS_TaskSequence_ConditionOperator.
Een voorwaarde toevoegen aan een stap
Een verbinding met de SMS-provider instellen. Zie Basisprincipes van SMS-provider voor meer informatie.
Een takenreeksstapobject ophalen. Dit kan een SMS_TaskSequence_Group-object voor een groep zijn of een SMS_TaskSequenceAction afgeleid klasseobject voor een actie. Zie Een takenreeksactie voor besturingssysteemimplementatie toevoegen voor meer informatie.
Maak een nieuwe voorwaarde door een exemplaar van
SMS_TaskSequence_Condition
te maken.Maak een expressie voor de voorwaarde door een exemplaar van een SMS_TaskSequence_ConditionExpression afgeleide klasse te maken. Bijvoorbeeld SMS_TaskSequence_RegistryConditionExpression.
Vul de expressie-eigenschappen in.
Voeg de expressie toe aan de eigenschap Voorwaarde Operands .
Voeg de voorwaarde toe aan de eigenschap Voorwaarde van de takenreeksstapklasse.
Voorbeeld
Met de volgende voorbeeldmethode wordt een voorwaarde toegevoegd aan een opgegeven stap die bepaalt of de HKEY_LOCAL_MACHINE\MICROSOFT registersleutel bestaat. De SMS_TaskSequenc_RegistryCondition-expressie wordt gebruikt om de voorwaarde op te geven.
Zie Aanroepen Configuration Manager codefragmenten voor meer informatie over het aanroepen van de voorbeeldcode.
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;
}
}
De voorbeeldmethode heeft de volgende parameters:
Parameter | Type | Beschrijving |
---|---|---|
connection |
-Beheerd: WqlConnectionManager - VBScript: SWbemServices |
Een geldige verbinding met de SMS-provider. |
taskSequenceStep |
-Beheerd: IResultObject - VBScript: SWbemObject |
Een geldige takenreeksstap (SMS_TaskSequenceStep). |
De code compileren
Het C#-voorbeeld heeft de volgende compilatievereisten:
Naamruimten
Systeem
System.Collections.Generic
System.Text
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Vergadering
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robuust programmeren
Zie Over Configuration Manager fouten voor meer informatie over foutafhandeling.
.NET Framework Beveiliging
Zie Configuration Manager op rollen gebaseerd beheer voor meer informatie over het beveiligen van Configuration Manager toepassingen.
Zie ook
Overzicht van objectenEen takenreeksactie voor de implementatie van een besturingssysteem toevoegen
Verbinding maken met een SMS-provider in Configuration Manager met behulp van beheerde code
Verbinding maken met een SMS-provider in Configuration Manager met behulp van WMI
Takenreeksoverzicht