Partilhar via


Como Adicionar uma Condição a um Passo de Sequência de Tarefas de Implementação do Sistema Operativo

As condições podem ser adicionadas a um passo de implementação do sistema operativo (action and group), no Gestor de Configuração, criando uma SMS_TaskSequence_Condition instância de classe e associando-a ao passo. Se as condições são todas cumpridas, então o passo é processado; caso contrário, não é. A condição pode ter um ou mais óperas que são casos de classes derivadas SMS_TaskSequence_Condition. Especifica os operadores para os operands com instâncias de SMS_TaskSequence_ConditionOperator.

Para adicionar uma condição a um passo

  1. Configurar uma ligação com o Fornecedor DE SMS. Para mais informações, consulte os fundamentos do Fornecedor de SMS.

  2. Obtenha um objeto de passo de sequência de tarefa. Este pode ser um objeto SMS_TaskSequence_Group para um grupo, ou um objeto de classe derivada SMS_TaskSequenceAction para uma ação, para obter mais informações, ver Como Adicionar uma Ação de Sequência de Tarefa de Implementação do Sistema Operativo.

  3. Criar uma nova condição criando um exemplo de SMS_TaskSequence_Condition .

  4. Crie uma expressão para a circunstância criando um exemplo de uma classe derivada SMS_TaskSequence_ConditionExpression. Por exemplo, SMS_TaskSequence_RegistryConditionExpression.

  5. Povoar as propriedades da expressão.

  6. Adicione a expressão à condição propriedade Operands.

  7. Adicione a condição à base de função de classe de etapas de função.

Exemplo

O método de exemplo a seguir adiciona uma condição a um passo fornecido que determina se a chave de registo HKEY_LOCAL_MACHINE\MICROSOFT existe. A expressão SMS_TaskSequenc_RegistryCondition é utilizada para especificar a condição.

Para obter informações sobre a chamada do código de amostra, consulte o Código de Identificação do Gestor de Chamadas.

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

O método exemplo tem os seguintes parâmetros:

Parâmetro Tipo Description
connection - Gerido: WqlConnectionManager
- VBScript: SWbemServices
Uma ligação válida ao Fornecedor de SMS.
taskSequenceStep - Gerido: IResultObject
- VBScript: SWbemObject
Um passo de sequência de tarefa válido(SMS_TaskSequenceStep).

A Compilar o Código

O exemplo C# tem os seguintes requisitos de compilação:

Espaços de nomes

Sistema

System.Collections.Generic

System.Text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assemblagem

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programação Robusta

Para obter mais informações sobre o tratamento de erros, consulte Sobre erros do Gestor de Configuração.

Segurança do .NET Framework

Para obter mais informações sobre a segurança das aplicações do Gestor de Configuração, consulte a administração baseada em funções do Gestor de Configuração.

Consulte também

Visão geral de objetos Como Adicionar uma Ação de Sequência de Tarefa de Implementação do Sistema Operativo
Como Ligação a um fornecedor de SMS no Gestor de Configuração através da utilização do Código Gerido
Como Ligação a um fornecedor de SMS no Gestor de Configuração através da utilização do WMI
Task sequence overview (Descrição geral da sequência de tarefas)