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, jestli existuje HKEY_LOCAL_MACHINE\MICROSOFT klíč registru. 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 -Řízen: WqlConnectionManager
- VBScript: SWbemServices
Platné připojení k poskytovateli serveru SMS.
taskSequenceStep -Řízen: 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ém

System.Collections.Generic

System.Text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Shromáždění

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ů: Akce pořadí úkolů Přidání nasazení operačního systémuPostup připojení k poskytovateli serveru SMS v Configuration Manager pomocí spravovaného kóduPostup připojení k poskytovateli serveru SMS v Configuration Manager pomocí rozhraní WMIPřehled pořadí úkolů