Uso de variables en una secuencia de tareas en Configuration ManagerHow to use task sequence variables in Configuration Manager

Se aplica a: System Center Configuration Manager (Rama actual)Applies to: System Center Configuration Manager (Current Branch)

El motor de secuencia de tareas en la característica de implementación de sistema operativo de Configuration Manager usa muchas variables para controlar sus comportamientos.The task sequence engine in the OS deployment feature of Configuration Manager uses many variables to control its behaviors. Use estas variables para:Use these variables to:

  • Establecer las condiciones en los pasosSet conditions on steps
  • Cambiar los comportamientos de determinados pasosChange behaviors for specific steps
  • Usar en scripts para acciones más complejasUse in scripts for more complex actions

Para consultar una referencia de todas las variables de secuencia de tareas disponibles, conste Variables de secuencia de tareas.For a reference of all available task sequence variables, see Task sequence variables.

Tipos de variablesTypes of variables

Hay varios tipos de variables:There are several types of variables:

Variables integradasBuilt-in variables

Las variables integradas proporcionan información sobre el entorno donde se ejecuta la secuencia de tareas.Built-in variables provide information about the environment where the task sequence runs. Sus valores están disponibles a lo largo de toda la secuencia de tareas.Their values are available throughout the whole task sequence. Por lo general, el motor de secuencia de tareas inicializa las variables integradas antes de ejecutar los pasos.Typically, the task sequence engine initializes built-in variables before it runs any steps.

Por ejemplo, _SMSTSLogPath es una variable de entorno que especifica la ruta de acceso en la que los componentes de Configuration Manager escriben archivos de registro.For example, _SMSTSLogPath is an environment variable that specifies the path to which Configuration Manager components write log files. Cualquier paso de secuencia de tareas puede tener acceso a esta variable de entorno.Any task sequence step can access this environment variable.

La secuencia de tareas evalúa algunas de las variables antes de cada paso.The task sequence evaluates some variables before each step. Por ejemplo, _SMSTSCurrentActionName muestra el nombre del paso actual.For example, _SMSTSCurrentActionName lists the name of the current step.

Variables de acciónAction variables

Las variables de acción de secuencia de tareas especifican los valores de configuración que utiliza un único paso de una secuencia de tareas.Task sequence action variables specify configuration settings that a single task sequence step uses. De forma predeterminada, el paso inicializa su configuración antes de ejecutarse.By default, the step initializes its settings before it runs. Esta configuración solo está disponible mientras se está ejecutando el paso asociado de la secuencia de tareas.These settings are available only while the associated task sequence step runs. La secuencia de tareas agrega el valor de la variable de acción al entorno antes de ejecutar el paso.The task sequence adds the action variable value to the environment before it runs the step. Luego, quita el valor del entorno después de que se ejecuta el paso.It then removes the value from the environment after the step runs.

Por ejemplo, agrega el paso Ejecutar línea de comandos a una secuencia de tareas.For example, you add the Run Command Line step to a task sequence. Este paso incluye un propiedad Iniciar en.This step includes a Start In property. La secuencia de tareas almacena un valor predeterminado para esta propiedad como variable WorkingDirectory.The task sequence stores a default value for this property as the WorkingDirectory variable. La secuencia de tareas inicializa este valor antes de ejecutar el paso Ejecutar línea de comandos.The task sequence initializes this value before it runs the Run Command Line step. Mientras se ejecuta este paso, acceda al valor de propiedad Iniciar en desde el valor WorkingDirectory.While this step is running, access the Start In property value from the WorkingDirectory value. Una vez completado el paso (etapa), la secuencia de tareas quita el valor de la variable WorkingDirectory del entorno.After the step completes, the task sequence removes the value of the WorkingDirectory variable from the environment. Si la secuencia de tareas incluye otro paso Ejecutar línea de comandos, inicializa una nueva variable WorkingDirectory.If the task sequence includes another Run Command Line step, it initializes a new WorkingDirectory variable. En ese momento, la secuencia de tareas establece la variable como el valor inicial para el paso actual.At that time, the task sequence sets the variable to the starting value for the current step. Para obtener más información, consulte WorkingDirectory.For more information, see WorkingDirectory.

El valor predeterminado de una variable de acción está presente cuando se ejecuta el paso.The default value for an action variable is present when the step runs. Si establece un nuevo valor, estará disponible para varios pasos de la secuencia de tareas.If you set a new value, it's available to multiple steps in the task sequence. Si reemplaza un valor predeterminado, el nuevo valor permanece en el entorno.If you override a default value, the new value stays in the environment. Este nuevo valor reemplaza al valor predeterminado para otros pasos en la secuencia de tareas.This new value overrides the default value for other steps in the task sequence. Por ejemplo, agregue un paso Configurar variable de secuencia de tareas como primer paso de la secuencia de tareas.For example, you add a Set Task Sequence Variable step as the first step of the task sequence. Este paso establece la variable WorkingDirectory en C:\.This step sets the WorkingDirectory variable to C:\. Cualquier paso de Ejecutar línea de comandos de la secuencia de tareas usa el nuevo valor de directorio inicial.Any Run Command Line step in the task sequence uses the new starting directory value.

Algunos pasos de secuencia de tareas marcan determinadas variables de acción como salida.Some task sequence steps mark certain action variables as output. Las pasos que tienen lugar posteriormente en la secuencia de tareas leen estas variables de salida.Steps later in the task sequence read these output variables.

Nota

No todos los pasos de secuencia de tareas tienen variables de acción.Not all task sequence steps have action variables. Por ejemplo, aunque hay variables asociadas a la acción Habilitar BitLocker, no hay ninguna variable asociada a la acción Deshabilitar BitLocker.For example, although there are variables associated with the Enable BitLocker action, there are no variables associated with the Disable BitLocker action.

Variables personalizadasCustom variables

Estas variables son aquellas que Configuration Manager no crea.These variables are any that Configuration Manager doesn't create. Inicialice sus propias variables para usarlas como condiciones, en líneas de comandos o en scripts.Initialize your own variables to use as conditions, in command lines, or in scripts.

Cuando especifique un nombre para una nueva variable de secuencia de tareas, siga estas instrucciones:When you specify a name for a new task sequence variable, follow these guidelines:

  • El nombre de la variable de secuencia de tareas puede incluir letras, números, el carácter de subrayado (_) y un guión (-).The task sequence variable name can include letters, numbers, the underscore character (_), and a hyphen (-).

  • El nombre de la variable de secuencia de tareas tiene una longitud mínima de 1 carácter y una longitud máxima de 256 caracteres.Task sequence variable names have a minimum length of one character and a maximum length of 256 characters.

  • Las variables definidas por el usuario deben comenzar con una letra (A-Z o a-z).User-defined variables must begin with a letter (A-Z or a-z).

  • Los nombres de las variables definidas por el usuario no pueden comenzar con el carácter de subrayado.User-defined variable names can't begin with the underscore character. Únicamente las variables de secuencia de tareas de solo lectura van precedidas por el carácter de subrayado.Only read-only task sequence variables are preceded by the underscore character.

  • Los nombres de variables de secuencia de tareas no distinguen mayúsculas de minúsculas.Task sequence variable names aren't case-sensitive. Por ejemplo, OSDVAR y osdvar son la misma variable de secuencia de tareas.For example, OSDVAR and osdvar are the same task sequence variable.

  • Los nombres de variables de secuencia de tareas no pueden comenzar ni terminar con un espacio.Task sequence variable names can't begin or end with a space. Tampoco pueden contener espacios incrustados.They also can't have embedded spaces. La secuencia de tareas ignora los espacios que quedan al principio o al final de un nombre de variable.The task sequence ignores any spaces at the beginning or the end of a variable name.

No hay ningún límite establecido respecto al número de variables de secuencias de tareas que puede crear.There's no set limit to how many task sequence variables you can create. Sin embargo, el número de variables está limitado por el tamaño del entorno de secuencia de tareas.However, the number of variables is limited by the size of the task sequence environment. El límite de tamaño total para el entorno de secuencia de tareas es de 32 MB.The total size limit for the task sequence environment is 32 MB.

Variables de solo lecturaRead-only variables

No se puede cambiar el valor de algunas variables, que son de solo lectura.You can't change the value of some variables, which are read-only. Normalmente, el nombre comienza con un carácter de subrayado (_).Usually the name begins with an underscore character (_). La secuencia de tareas las usa para sus operaciones.The task sequence uses them for its operations. Las variables de solo lectura están visibles en el entorno de secuencia de tareas.Read-only variables are visible in the task sequence environment.

Estas variables son útiles en los scripts o líneas de comandos.These variables are useful in scripts or command-lines. Por ejemplo, la ejecución de una línea de comandos y la canalización de la salida a un registro de archivo en _SMSTSLogPath con los demás archivos de registro.For example, running a command line and piping the output to a log file in _SMSTSLogPath with the other log files.

Nota

Los pasos de secuencia de tareas pueden leer las variables de secuencia de tareas de solo lectura en una secuencia de tareas, pero no pueden configurarse.Read-only task sequence variables can be read by steps in a task sequence but they can't be set. Por ejemplo, utilice una variable de solo lectura como parte de la línea de comandos para un paso Ejecutar línea de comandos.For example, use a read-only variable as part of the command line for a Run Command Line step. No puede establecer una variable de solo lectura mediante el paso Configurar variable de secuencia de tareas.You can't set a read-only variable by using the Set Task Sequence Variable step.

Variables de matrizArray variables

La secuencia de tareas almacena algunas de las variables como una matriz.The task sequence stores some variables as an array. Cada uno de los elementos de la matriz representa la configuración de un único objeto.Each element in the array represents the settings for a single object. Use estas variables cuando un dispositivo tenga más de un objeto que configurar.Use these variables when a device has more than one object to configure. Los siguientes pasos de secuencia de tareas utilizan variables de matriz:The following task sequence steps use array variables:

Configuración de las variablesHow to set variables

En el caso de las variables personalizadas o las variables que no son de solo lectura, existen varios métodos para inicializar y establecer el valor de la variable:For custom variables or variables that aren't read-only, there are several methods to initialize and set the value of the variable:

Elimine una variable del entorno con alguno de los métodos que sirven para crear una variable.Delete a variable from the environment by using the same methods as creating a variable. Para eliminar una variable, establezca el valor de la variable en una cadena vacía.To delete a variable, set the variable value to an empty string.

Puede combinar métodos para establecer una variable de secuencia de tareas en valores diferentes para la misma secuencia.You can combine methods to set a task sequence variable to different values for the same sequence. Por ejemplo, establezca los valores predeterminados mediante el editor de secuencia de tareas y, a continuación, establezca valores personalizados mediante un script.For example, set the default values using the task sequence editor, and then set custom values using a script.

Si establece la misma variable por medio de distintos métodos, el motor de secuencia de tareas utiliza el siguiente orden:If you set the same variable by different methods, the task sequence engine uses the following order:

  1. Primero se evalúan las variables de la recopilación.It evaluates collection variables first.

  2. Las variables específicas de dispositivo invalidan la misma variable establecida en una recopilación.Device-specific variables override the same variable set on a collection.

  3. Las variables establecidas por cualquier método durante la secuencia de tareas tienen prioridad sobre las variables de la recopilación o el dispositivo.Variables set by any method during the task sequence take precedence over collection or device variables.

Limitaciones generales para los valores de las variables de secuencia de tareasGeneral limitations for task sequence variable values

  • Los valores de las variables de secuencia de tareas no pueden superar los 4000 caracteres.Task sequence variable values can't be more than 4,000 characters.

  • No se puede cambiar una variable de secuencia de tareas de solo lectura.You can't change a read-only task sequence variable. Las variables de solo lectura tienen nombres que empiezan por un carácter de subrayado (_).Read-only variables have names that start with an underscore character (_).

  • Los valores de variables de secuencias de tareas pueden distinguir entre mayúsculas y minúsculas dependiendo del uso del valor.Task sequence variable values can be case-sensitive depending on the usage of the value. En la mayoría de los casos, los valores de variables de secuencias de tareas no distinguen entre mayúsculas y minúsculas.In most cases, task sequence variable values aren't case-sensitive. Una variable que incluye una contraseña distingue mayúsculas de minúsculas.A variable that includes a password is case-sensitive.

Establecer variable de secuencia de tareasSet Task Sequence Variable

Utilice este paso en la secuencia de tareas para establecer una única variable en un solo valor.Use this step in the task sequence to set a single variable to a single value.

Para más información, vea Configurar variable de secuencia de tareas.For more information, see Set Task Sequence Variable.

Establecer variables dinámicasSet Dynamic Variables

Utilice este paso en la secuencia de tareas para establecer una o varias variables de secuencia de tareas.Use this step in the task sequence to set one or more task sequence variables. Defina reglas en este paso para determinar las variables y los valores que se usarán.You define rules in this step to determine which variables and values to use.

Para obtener más información, consulte Establecer variables dinámicas.For more information, see Set Dynamic Variables.

Variables de recopilación y dispositivoCollection and device variables

Establezca las variables en las propiedades de una recopilación o un dispositivo específico.Set variables on the properties of a collection or a specific device.

Para más información, consulte Crear variables de secuencia de tareas para equipos y recopilaciones.For more information, see Create task sequence variables for computers and collections.

Objeto COM TSEnvironmentTSEnvironment COM object

Para trabajar con variables de un script, use el objeto TSEnvironment.To work with variables from a script, use the TSEnvironment object.

Para obtener más información, consulte How to use variables in a running task sequence (Uso de variables en una secuencia de tareas en ejecución) en el SDK de Configuration Manager.For more information, see How to use variables in a running task sequence in the Configuration Manager SDK.

Comando de preinicioPrestart command

El comando de preinicio es un script o un archivo ejecutable que se ejecuta en Windows PE antes de que el usuario seleccione la secuencia de tareas.The prestart command is a script or executable that runs in Windows PE before the user selects the task sequence. El comando de preinicio puede consultar una variable o pedir información al usuario y, luego, guardarla en el entorno.The prestart command can query a variable or prompt the user for information, and then save it in the environment. Use el objeto COM TSEnvironment para leer y escribir variables desde el comando de preinicio.Use the TSEnvironment COM object to read and write variables from the prestart command.

Para obtener más información, consulte Prestart commands for task sequence media (Comandos de preinicio para medios de secuencia de tareas).For more information, see Prestart commands for task sequence media.

Asistente para secuencia de tareasTask Sequence Wizard

A partir de la versión 1906, después de seleccionar una secuencia de tareas en la ventana del Asistente para secuencia de tareas, la página para editar las variables de secuencia de tareas incluye un botón Editar.Starting in version 1906, after you select a task sequence in the Task Sequence Wizard window, the page to edit task sequence variables includes an Edit button. Puede usar métodos abreviados de teclado accesibles para editar las variables.You can use accessible keyboard shortcuts to edit the variables. Este cambio ayuda en casos en los que no hay un mouse disponible.This change helps in cases where a mouse isn't available.

Asistente para crear medio de secuencia de tareasTask Sequence Media Wizard

Especifique las variables de secuencias de tareas que se ejecutan desde un medio.Specify variables for task sequences that run from media. Cuando se utiliza un medio para implementar el sistema operativo, se agregan las variables de secuencia de tareas y se especifican sus valores al crear el medio.When using media to deploy the OS, you add the task sequence variables and specify their values when you create the media. Las variables y sus valores se almacenan en el medio.The variables and their values are stored on the media.

Nota

Las secuencias de tareas se almacenan en medios independientes.Task sequences are stored on stand-alone media. Sin embargo, todos los demás tipos de medios, como los medios preconfigurados, recuperan la secuencia de tareas desde un punto de administración.However, all other types of media, such as prestaged media, retrieve the task sequence from a management point.

Al ejecutar una secuencia de tareas desde un medio, puede agregar una variable a la página Personalización del asistente.When you run a task sequence from media, you can add a variable on the Customization page of the wizard.

Use las variables de los medios en lugar de las variables por recopilación o por equipo.Use the media variables in place of per-collection or per-computer variables. Si se está ejecutando la secuencia de tareas desde un medio, las variables por equipo y por recopilación no se aplican y no se utilizan.If the task sequence is running from media, per-computer and per-collection variables don't apply and aren't used.

Sugerencia

La secuencia de tareas escribe el identificador de paquete y la línea de comandos de preinicio en el archivo CreateTSMedia.log en el equipo que ejecuta la consola de Configuration Manager.The task sequence writes the package ID and prestart command line to the CreateTSMedia.log file on the computer that runs the Configuration Manager console. Este archivo de registro incluye el valor de las variables de secuencia de tareas.This log file includes the value for any task sequence variables. Revise este archivo de registro para comprobar el valor de las variables de secuencia de tareas.Review this log file to verify the value for the task sequence variables.

Para obtener más información, consulte Crear medios de secuencia de tareas .For more information, see Create task sequence media.

Acceso a variablesHow to access variables

Después de especificar la variable y su valor mediante uno de los métodos indicados en la sección anterior, utilícela en sus secuencias de tareas.After you specify the variable and its value by using one of the methods from the previous section, use it in your task sequences. Por ejemplo, acceda a los valores predeterminados para las variables de secuencia de tareas integradas o condicione un paso al valor de una variable.For example, access default values for built-in task sequence variables, or make a step conditional on the value of a variable.

Use los siguientes métodos para tener acceso a los valores de las variables en el entorno de la secuencia de tareas:Use the following methods to access variable values in the task sequence environment:

Usar en un pasoUse in a step

Especifique un valor de variable para un ajuste de un paso de secuencia de tareas.Specify a variable value for a setting in a task sequence step. En el editor de secuencia de tareas, modifique el paso y especifique el nombre de variable como el valor del campo.In the task sequence editor, edit the step, and specify the variable name as the field value. Rodee el nombre de la variable de signos de porcentaje (%).Enclose the variable name in percent signs (%).

Por ejemplo, utilice el nombre de la variable como parte del campo Línea de comandos del paso Ejecutar línea de comandos.For example, use the variable name as part of the Command Line field of the Run Command Line step. La siguiente línea de comandos escribe el nombre del equipo en un archivo de texto.The following command line writes the computer name to a text file.

cmd.exe /c %_SMSTSMachineName% > C:\File.txt

Condición de pasoStep condition

Use variables de secuencia de tareas integradas o personalizadas como parte de una condición en un paso o grupo.Use built-in or custom task sequence variables as part of a condition on a step or group. La secuencia de tareas evalúa el valor de la variable antes de ejecutar el paso o grupo.The task sequence evaluates the variable value before it runs the step or group.

Para agregar una condición que evalúa un valor de variable, haga lo siguiente:To add a condition that evaluates a variable value, do the following steps:

  1. En el editor de secuencia de tareas, seleccione el paso o grupo al que desea agregar la condición.In the task sequence editor, select the step or group to which you want to add the condition.

  2. Cambie a la pestaña Opciones para el paso o grupo.Switch to the Options tab for the step or group. Haga clic en Agregar condición y seleccione Variable de secuencia de tareas.Click Add Condition, and select Task Sequence Variable.

  3. En el cuadro de diálogo Variable de secuencia de tareas, especifique la siguiente configuración:In the Task Sequence Variable dialog box, specify the following settings:

    • Variable: el nombre de la variable.Variable: The name of the variable. Por ejemplo, _SMSTSInWinPE.For example, _SMSTSInWinPE.

    • Condición: la condición para evaluar el valor de la variable.Condition: The condition to evaluate the variable value. Por ejemplo, igual a.For example, equals.

    • Valor: el valor de la variable que se va a comprobar.Value: The value of the variable to check. Por ejemplo, false.For example, false.

Los tres ejemplos anteriores conforman en conjunto una condición para comprobar si la secuencia de tareas se está ejecutando desde una imagen de arranque de Windows PE:The three examples above form a common condition to test whether the task sequence is running from a boot image in Windows PE:

Variable de secuencia de tareas _SMSTSInWinPE equals "false"Task Sequence Variable _SMSTSInWinPE equals "false"

Consulte esta condición en el grupo Capturar archivos y configuraciones de la plantilla de secuencia de tareas predeterminada para instalar una imagen de sistema operativo existente.See this condition on the Capture Files and Settings group of the default task sequence template to install an existing OS image.

Script personalizadoCustom script

Lea y escriba variables mediante el objeto COM de Microsoft.SMS.TSEnvironment mientras la secuencia de tareas está en ejecución.Read and write variables by using the Microsoft.SMS.TSEnvironment COM object while the task sequence is running.

El ejemplo siguiente de Windows PowerShell consulta la variable _SMSTSLogPath para obtener la ubicación del registro actual.The following Windows PowerShell example queries the _SMSTSLogPath variable to get the current log location. El script también establece una variable personalizada.The script also sets a custom variable.

# Create an object to access the task sequence environment
$tsenv = New-Object -ComObject Microsoft.SMS.TSEnvironment

# Query the environment to get an existing variable
# Set a variable for the task sequence log path
$LogPath = $tsenv.Value("_SMSTSLogPath")

# Or, convert all of the variables currently in the environment to PowerShell variables
$tsenv.GetVariables() | % { Set-Variable -Name "$_" -Value "$($tsenv.Value($_))" }

# Write a message to a log file
Write-Output "Hello world!" | Out-File -FilePath "$_SMSTSLogPath\mylog.log" -Encoding "Default" -Append

# Set a custom variable "startTime" to the current time
$tsenv.Value("startTime") = (Get-Date -Format HH:mm:ss) + ".000+000"

Archivo de respuesta de configuración de WindowsWindows setup answer file

El archivo de respuesta de configuración de Windows que suministre puede tener insertadas variables de secuencia de tareas.The Windows setup answer file that you supply can have embedded task sequence variables. Utilice el formulario %varname%, donde varname es el nombre de la variable.Use the form %varname%, where varname is the name of the variable. El paso Instalar Windows y Configuration Manager sustituye la cadena del nombre de la variable por el valor real de la variable.The Setup Windows and ConfigMgr step replaces the variable name string for the actual variable value. Estas variables de secuencia de tareas insertadas no se pueden usar en campos solo numéricos de un archivo de respuesta unattend.xml.These embedded task sequence variables can't be used in numeric-only fields in an unattend.xml answer file.

Para obtener más información, consulte Instalar Windows y Configuration Manager.For more information, see Setup Windows and ConfigMgr.

Consulte tambiénSee also