Sdílet prostřednictvím


Přidání podmínky do kroku pořadí úkolů nasazení operačního systému

Podmínky je možné přidat do kroku nasazení operačního systému (akce a skupiny) v Configuration Manager vytvořením instance SMS_TaskSequence_Condition třídy a následným přidružením této instance k kroku. Pokud jsou všechny operandy podmínky splněny, je krok zpracován; jinak to není. Podmínka může mít jeden nebo více operandů, které jsou instancemi SMS_TaskSequence_Condition odvozených tříd. Operátory pro operandy zadáte s instancemi SMS_TaskSequence_ConditionOperator.

Přidání podmínky do kroku

  1. Nastavte připojení k poskytovateli serveru SMS. Další informace najdete v tématu Základy poskytovatele serveru SMS.

  2. Získejte objekt kroku pořadí úkolů. Může se jednat o objekt SMS_TaskSequence_Group pro skupinu nebo SMS_TaskSequenceAction objekt odvozené třídy pro akci. Další informace najdete v tématu Přidání akce pořadí úkolů nasazení operačního systému.

  3. Vytvořte novou podmínku vytvořením instance objektu SMS_TaskSequence_Condition.

  4. Vytvořte výraz pro podmínku vytvořením instance SMS_TaskSequence_ConditionExpression odvozené třídy. Například SMS_TaskSequence_RegistryConditionExpression.

  5. Vyplňte vlastnosti výrazu.

  6. Přidejte výraz do vlastnosti Operands podmínky.

  7. Přidejte podmínku do vlastnosti třídy Podmínka kroku pořadí úkolů.

Příklad

Následující ukázková metoda přidá podmínku do zadaného kroku, která určuje, zda HKEY_LOCAL_MACHINE\MICROSOFT klíč registru existuje. Výraz SMS_TaskSequenc_RegistryCondition slouží k určení podmínky.

Informace o volání ukázkového kódu najdete v tématu Volání Configuration Manager fragmentů kódu.

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

Ukázková metoda má následující parametry:

Parametr Typ Popis
connection -Spravované: WqlConnectionManager
- VBScript: SWbemServices
Platné připojení k poskytovateli serveru SMS.
taskSequenceStep -Spravované: IResultObject
- VBScript: SWbemObject
Platný krok pořadí úkolů (SMS_TaskSequenceStep).

Kompilace kódu

Příklad jazyka C# má následující požadavky na kompilaci:

Obory názvů

Systému

System.collections.generic

System.text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Sestavení

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Robustní programování

Další informace o zpracování chyb najdete v tématu Informace o chybách Configuration Manager.

Zabezpečení rozhraní .NET Framework

Další informace o zabezpečení Configuration Manager aplikací najdete v tématu Configuration Manager správa na základě rolí.

Viz taky

Přehled objektů– Postup přidání akce pořadí úkolů nasazení operačního systému
Připojení k poskytovateli serveru SMS v Configuration Manager pomocí spravovaného kódu
Připojení k poskytovateli serveru SMS v Configuration Manager pomocí rozhraní WMI
Přehled pořadí úkolů