Cómo establecer una variable de secuencia de tareas de implementación del sistema operativo

En Configuration Manager, se crea una variable de secuencia de tareas de implementación del sistema operativo mediante la creación de una instancia de la clase SMS_TaskSequence_SetVariableAction, que se agrega a una secuencia de tareas. También puede crear variables de secuencia de tareas mientras la secuencia de tareas se ejecuta en el cliente. Para obtener más información, consulta Cómo usar variables de secuencia de tareas en una secuencia de tareas de Configuration Manager en ejecución.

Una variable de secuencia de tareas es un par nombre-valor al que puede acceder mediante pasos de secuencia de tareas. También puede crear variables específicas del equipo y de la colección. Para obtener más información, consulte Cómo crear una variable de colección en Configuration Manager y Cómo crear una variable de equipo en Configuration Manager.

Nota:

Las variables que se establecen con la clase SMS_TaskSequence_SetVariableAction invalidan las variables que se establecen en otro lugar. Por ejemplo, si una variable de colección y una SMS_TaskSequence_SetVariableAction tienen el mismo nombre, el valor de la variable SMS_TaskSequence_SetVariableAction tiene prioridad.

Para establecer una variable de secuencia de tareas

  1. Configure una conexión al proveedor de SMS. Para obtener más información, consulte Aspectos básicos del proveedor de SMS.

  2. Obtenga una secuencia de tareas a la que agregar la variable de secuencia de tareas. Para obtener más información, vea Cómo crear una secuencia de tareas de implementación del sistema operativo.

  3. Cree una instancia de SMS_TaskSequence_SetVariableAction.

  4. Establezca las propiedades VariableName y VariableValue de la variable que vaya a agregar.

  5. Agregue el objeto SMS_TaskSequence_SetVariableAction a la secuencia de tareas.

Ejemplo

El método de ejemplo siguiente establece un nombre y un valor de variable de secuencia de tareas.

Para obtener información sobre cómo llamar al código de ejemplo, consulte Llamar a fragmentos de código de Configuration Manager.

Sub AddTaskSequenceVariable(connection, taskSequence, variableName, variableValue)

    Dim variable
    Dim steps

    Set variable = connection.Get("SMS_TaskSequence_SetVariableAction").SpawnInstance_

    variable.Name="MyTaskSequenceVariable"
    variable.Description = "A task sequence variable"
    variable.Enabled=True
    variable.ContinueOnError=False
    variable.VariableName=variableName
    variable.VariableValue=variableValue

    steps= Array(taskSequence.Steps)

    ReDim steps (UBound (taskSequence.Steps)+1)

    taskSequence.Steps(UBound(steps))=variable

End Sub
public void AddTaskSequenceVariable(
    WqlConnectionManager connection,
    IResultObject taskSequence,
    string variableName,
    string variableValue)
{
    try
    {
        // Create the task sequence variable object.
        IResultObject variable = connection.CreateEmbeddedObjectInstance("SMS_TaskSequence_SetVariableAction");

        // Populate the properties.
        variable["Name"].StringValue = "MyTaskSequenceVariable";
        variable["ContinueOnError"].BooleanValue = false;
        variable["Description"].StringValue = "A task sequence variable set with SMS_TaskSequence_SetVariableAction";
        variable["Enabled"].BooleanValue = true;
        variable["VariableName"].StringValue = variableName;
        variable["VariableValue"].StringValue = variableValue;

        // Add the step to the task sequence.
        List<IResultObject> array = taskSequence.GetArrayItems("Steps");

        array.Add(variable);
        taskSequence.SetArrayItems("Steps", array);
    }
    catch (SmsException e)
    {
        Console.WriteLine("Failed to set task sequence variable: " + e.Message);
        throw;
    }
}

Este método de ejemplo tiene los siguientes parámetros:

Parámetro Tipo Descripción
connection - Administrado: WqlConnectionManager
- VBScript: SWbemServices
- Una conexión válida con el proveedor de SMS.
taskSequence - Administrado: WqlConnectionManager
- VBScript: SWbemServices
- La secuencia de tareas a la que se agrega la variable.
variableName - Administrado: String
- VBScript: String
El nombre de la variable.
variableValue - Administrado: String
- VBScript: String
El valor de la variable.

Compilar el código

Este ejemplo de C# requiere:

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 acerca del control de errores, consulte Acerca de los errores de Configuration Manager.

Seguridad de .NET Framework

Para obtener más información acerca de cómo proteger las aplicaciones de Configuration Manager, consulte Administración basada en roles de Configuration Manager.

Consulta también

Introducción a los objetosCómo conectarse a un proveedor de SMS en Configuration Manager mediante código administradoCómo conectarse a un proveedor de SMS en Configuration Manager mediante WMI Introducción a la secuencia de tareasCómo usar variables de secuencia de tareas en una tarea de Configuration Manager en ejecución SecuenciaCómo leer una secuencia de tareas de un paquete de secuencias de tareas