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
Configurar uma ligação com o Fornecedor DE SMS. Para mais informações, consulte os fundamentos do Fornecedor de SMS.
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.
Criar uma nova condição criando um exemplo de
SMS_TaskSequence_Condition
.Crie uma expressão para a circunstância criando um exemplo de uma classe derivada SMS_TaskSequence_ConditionExpression. Por exemplo, SMS_TaskSequence_RegistryConditionExpression.
Povoar as propriedades da expressão.
Adicione a expressão à condição propriedade Operands.
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)