Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As condições podem ser adicionadas a um passo de implementação do sistema operativo (ação e grupo), no Configuration Manager, ao criar uma instância de classe SMS_TaskSequence_Condition e, em seguida, associá-la ao passo. Se todos os operandos de condição forem cumpridos, o passo é processado; caso contrário, não é. A condição pode ter um ou mais operandos que são instâncias de classes derivadas SMS_TaskSequence_Condition. Especifique operadores para os operandos com instâncias de SMS_TaskSequence_ConditionOperator.
Para adicionar uma condição a um passo
Configure uma ligação ao Fornecedor de SMS. Para obter mais informações, veja Noções básicas do Fornecedor de SMS.
Obtenha um objeto de passo de sequência de tarefas. Pode ser um objeto de SMS_TaskSequence_Group para um grupo ou um objeto de classe derivado SMS_TaskSequenceAction para uma ação. Para obter mais informações, veja Como Adicionar uma Ação de Sequência de Tarefas de Implementação do Sistema Operativo.
Crie uma nova condição ao criar uma instância de
SMS_TaskSequence_Condition
.Crie uma expressão para a condição ao criar uma instância de uma classe derivada SMS_TaskSequence_ConditionExpression . Por exemplo, SMS_TaskSequence_RegistryConditionExpression.
Preencha as propriedades da expressão.
Adicione a expressão à propriedade Operandos da condição.
Adicione a condição à propriedade Condição da classe de passo de sequência de tarefas.
Exemplo
O método de exemplo seguinte 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 como chamar o código de exemplo, veja Chamar Configuration Manager Fragmentos de Código.
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 de exemplo tem os seguintes parâmetros:
Parâmetro | Tipo | Descrição |
---|---|---|
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 tarefas válido (SMS_TaskSequenceStep). |
Compilando o código
O exemplo de C# tem os seguintes requisitos de compilação:
Namespaces
System
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Programação robusta
Para obter mais informações sobre o processamento de erros, veja About Configuration Manager Errors (Acerca dos Erros de Configuration Manager).
Segurança do .NET Framework
Para obter mais informações sobre como proteger aplicações Configuration Manager, veja Configuration Manager administração baseada em funções.
Confira também
Descrição geral de ObjetosComo Adicionar uma Ação de Sequência de Tarefas de Implementação do Sistema OperativoComo Ligar a um Fornecedor de SMS no Configuration Manager Utilizando Código GeridoComo Ligar a um Fornecedor de SMS no Configuration Manager utilizando a descrição geral da sequência de tarefas WMI