Procedimiento para agregar una condición a un paso de secuencia de tareas de implementación del sistema operativo
Las condiciones se pueden agregar a un paso de implementación del sistema operativo (acción y grupo), en Configuration Manager, creando una instancia de clase SMS_TaskSequence_Condition y asociándola después al paso. Si se cumplen todos los operandos de condición, se procesa el paso; de lo contrario, no lo es. La condición puede tener uno o varios operandos que son instancias de SMS_TaskSequence_Condition clases derivadas. Los operadores de los operandos se especifican con instancias de SMS_TaskSequence_ConditionOperator.
Para agregar una condición a un paso
Configure una conexión con el proveedor de SMS. Para obtener más información, consulte Aspectos básicos del proveedor de SMS.
Obtenga un objeto de paso de secuencia de tareas. Puede ser un objeto SMS_TaskSequence_Group para un grupo o un objeto de clase derivado de SMS_TaskSequenceAction para una acción. Para obtener más información, vea Cómo agregar una acción de secuencia de tareas de implementación del sistema operativo.
Cree una nueva condición mediante la creación de una instancia de
SMS_TaskSequence_Condition
.Cree una expresión para la condición mediante la creación de una instancia de una clase derivada de SMS_TaskSequence_ConditionExpression . Por ejemplo, SMS_TaskSequence_RegistryConditionExpression.
Rellene las propiedades de la expresión.
Agregue la expresión a la propiedad condition Operands .
Agregue la condición a la propiedad Condition de la clase de paso de secuencia de tareas.
Ejemplo
El siguiente método de ejemplo agrega una condición a un paso proporcionado que determina si existe la clave del Registro HKEY_LOCAL_MACHINE\MICROSOFT. La expresión SMS_TaskSequenc_RegistryCondition se usa para especificar la condición.
Para obtener información sobre cómo llamar al código de ejemplo, vea Llamar a fragmentos de código de Configuration Manager.
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;
}
}
El método de ejemplo tiene los parámetros siguientes:
Parámetro | Tipo | Descripción |
---|---|---|
connection |
-Administrado: WqlConnectionManager - VBScript: SWbemServices |
Una conexión válida al proveedor de SMS. |
taskSequenceStep |
-Administrado: IResultObject - VBScript: SWbemObject |
Un paso de secuencia de tareas válido (SMS_TaskSequenceStep). |
Compilar el código
El ejemplo de C# tiene los siguientes requisitos de compilación:
Espacios de nombres
System
System.Collections.Generic
System.Text
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Ensamblado
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Programación sólida
Para obtener más información sobre el control de errores, consulte Acerca de los errores de Configuration Manager.
Seguridad de .NET Framework
Para obtener más información sobre la protección de aplicaciones Configuration Manager, consulte Configuration Manager administración basada en roles.
Consulta también
Introducción a los objetosCómo agregar una acción de secuencia de tareas de implementación del sistema operativo
Conexión a un proveedor de SMS en Configuration Manager mediante código administrado
Conexión a un proveedor de SMS en Configuration Manager mediante WMI
Introducción a la secuencia de tareas