Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: Configuration Manager (rama actual)
El motor de secuencia de tareas de la característica de implementación del sistema operativo de Configuration Manager utiliza muchas variables para controlar sus comportamientos. Use estas variables para:
- Establezca condiciones en los pasos
- Cambiar comportamientos para pasos específicos
- Usar en scripts para acciones más complejas
Para obtener una referencia de todas las variables de secuencia de tareas disponibles, vea Variables de secuencia de tareas.
Tipos de variables
Hay varios tipos de variables:
Variables integradas
Las variables integradas proporcionan información sobre el entorno donde se ejecuta la secuencia de tareas. Sus valores están disponibles a lo largo de toda la secuencia de tareas. Normalmente, el motor de secuencia de tareas inicializa las variables integradas antes de ejecutar los pasos.
Por ejemplo, _SMSTSLogPath es una variable de entorno que especifica la ruta de acceso a la que los componentes de Configuration Manager escriben los archivos de registro. Cualquier paso de la secuencia de tareas puede acceder a esta variable de entorno.
La secuencia de tareas evalúa algunas variables antes de cada paso. Por ejemplo, _SMSTSCurrentActionName muestra el nombre del paso actual.
Variables de acción
Las variables de acción de la secuencia de tareas especifican las opciones de configuración que usa un único paso de la secuencia de tareas. De forma predeterminada, el paso inicializa su configuración antes de ejecutarse. Estas opciones solo están disponibles mientras se ejecuta el paso de la secuencia de tareas asociado. La secuencia de tareas agrega el valor de la variable de acción al entorno antes de ejecutar el paso. Después, quita el valor del entorno después de que se ejecute el paso.
Por ejemplo, agrega el paso Ejecutar línea de comandos a una secuencia de tareas. Este paso incluye una propiedad Empezar en . La secuencia de tareas almacena un valor predeterminado para esta propiedad como la WorkingDirectory variable. La secuencia de tareas inicializa este valor antes de ejecutar el paso Ejecutar línea de comandos . Mientras se ejecuta este paso, acceda al valor de la propiedad Iniciar en desde el WorkingDirectory valor. Una vez completado el paso, la secuencia de tareas quita el valor de la WorkingDirectory variable del entorno. Si la secuencia de tareas incluye otro paso Ejecutar línea de comandos , inicializa una nueva WorkingDirectory variable. En ese momento, la secuencia de tareas establece la variable en el valor inicial del paso actual. Para obtener más información, consulte WorkingDirectory.
El valor predeterminado de una variable de acción está presente cuando se ejecuta el paso. Si establece un nuevo valor, está disponible para varios pasos de la secuencia de tareas. Si reemplaza un valor predeterminado, el nuevo valor permanece en el entorno. Este nuevo valor reemplaza el valor predeterminado de otros pasos de la secuencia de tareas. Por ejemplo, agregue un paso Establecer variable de secuencia de tareas como primer paso de la secuencia de tareas. Este paso establece la WorkingDirectory variable en C:\. Cualquier paso Ejecutar línea de comandos de la secuencia de tareas usa el nuevo valor del directorio inicial.
Algunos pasos de la secuencia de tareas marcan determinadas variables de acción como salida. Los pasos posteriores en la secuencia de tareas leen estas variables de salida.
Nota:
No todos los pasos de la secuencia de tareas tienen variables de acción. Por ejemplo, aunque hay variables asociadas con la acción Habilitar BitLocker , no hay variables asociadas con la acción Deshabilitar BitLocker .
Variables personalizadas
Estas variables son aquellas que Configuration Manager no crea. Inicialice sus propias variables para usarlas como condiciones, en líneas de comandos o en scripts.
Al especificar un nombre para una nueva variable de secuencia de tareas, siga estas instrucciones:
El nombre de la variable de secuencia de tareas puede incluir letras, números, el carácter de subrayado (
_) y un guión (-).Los nombres de las variables de secuencia de tareas tienen una longitud mínima de un carácter y una longitud máxima de 256 caracteres.
Las variables definidas por el usuario deben comenzar con una letra (
A-Zoa-z).Los nombres de variable definidos por el usuario no pueden comenzar con el carácter de subrayado. Solo las variables de secuencia de tareas de solo lectura van precedidas del carácter de subrayado.
Los nombres de las variables de secuencia de tareas no distinguen mayúsculas de minúsculas. Por ejemplo,
OSDVARyosdvarson la misma variable de secuencia de tareas.Los nombres de las variables de secuencia de tareas no pueden empezar ni terminar con un espacio. Tampoco pueden tener espacios incrustados. La secuencia de tareas omite los espacios al principio o al final de un nombre de variable.
No hay ningún límite establecido para el número de variables de secuencia de tareas que puede crear. Sin embargo, el número de variables está limitado por el tamaño del entorno de secuencia de tareas. El límite de tamaño total para el entorno de secuencia de tareas es de 8 KB. Para obtener más información, vea Reducir el tamaño de la directiva de secuencia de tareas.
Variables de solo lectura
No se puede cambiar el valor de algunas variables, que son de solo lectura. Normalmente, el nombre comienza con un carácter de subrayado (_). La secuencia de tareas las utiliza para sus operaciones. Las variables de solo lectura son visibles en el entorno de secuencia de tareas.
Estas variables son útiles en scripts o líneas de comandos. Por ejemplo, ejecutar una línea de comandos y canalizar la salida a un archivo de registro con _SMSTSLogPath los demás archivos de registro.
Nota:
Las variables de secuencia de tareas de solo lectura se pueden leer por pasos en una secuencia de tareas, pero no se pueden establecer. Por ejemplo, use una variable de solo lectura como parte de la línea de comandos para un paso Ejecutar línea de comandos . No se puede establecer una variable de solo lectura mediante el paso Establecer variable de secuencia de tareas .
Variables de matriz
La secuencia de tareas almacena algunas variables como una matriz. Cada elemento de la matriz representa la configuración de un único objeto. Usa estas variables cuando un dispositivo tenga más de un objeto para configurar. Los siguientes pasos de la secuencia de tareas usan variables de matriz:
Cómo establecer variables
Para 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:
- Establecer paso de variable de secuencia de tareas
- Paso Establecer variables dinámicas
- Paso Ejecutar script de PowerShell
- Variables de recopilación y dispositivo
- Objeto COM TSEnvironment
- Comando Preinicio
- Asistente para secuencias de tareas
- Asistente para Medios de Secuencia de Tareas
Elimine una variable del entorno utilizando los mismos métodos que para crear una variable. Para eliminar una variable, establezca el valor de la variable en una cadena vacía.
Puede combinar métodos para establecer una variable de secuencia de tareas en valores diferentes para la misma secuencia. Por ejemplo, establezca los valores predeterminados con el editor de secuencias de tareas y, a continuación, establezca los valores personalizados con un script.
Si establece la misma variable mediante distintos métodos, el motor de secuencia de tareas utiliza el siguiente orden:
En primer lugar, evalúa las variables de recopilación.
Las variables específicas del dispositivo invalidan el mismo conjunto de variables en una colección.
Las variables establecidas por cualquier método durante la secuencia de tareas tienen prioridad sobre las variables de recopilación o de dispositivo.
Limitaciones generales para los valores de las variables de la secuencia de tareas
Los valores de las variables de la secuencia de tareas no pueden tener más de 4000 caracteres.
No se puede cambiar una variable de secuencia de tareas de solo lectura. Las variables de solo lectura tienen nombres que comienzan con un carácter de subrayado (
_).Los valores de las variables de la secuencia de tareas pueden distinguir mayúsculas de minúsculas en función del uso del valor. En la mayoría de los casos, los valores de las variables de secuencia de tareas no distinguen mayúsculas de minúsculas. Una variable que incluye una contraseña distingue mayúsculas de minúsculas.
Establecer variable de secuencia de tareas
Use este paso de la secuencia de tareas para establecer una sola variable en un solo valor.
Para obtener más información, consulte Establecer variable de secuencia de tareas.
Establecer variables dinámicas
Use este paso de la secuencia de tareas para establecer una o más variables de secuencia de tareas. En este paso debe definir las reglas para determinar qué variables y valores se van a utilizar.
Para obtener más información, consulte Establecer variables dinámicas.
Ejecutar script de PowerShell
Use este paso de la secuencia de tareas para usar un script de PowerShell para establecer una variable de secuencia de tareas.
Puede especificar un nombre de script de un paquete o escribir directamente un script de PowerShell en el paso. A continuación, use la propiedad step para generar en la variable de secuencia de tareas y guarde la salida del script en una variable de secuencia de tareas personalizada.
Para obtener más información sobre este paso, consulte Ejecutar PowerShell Script.
Nota:
También puede usar un script de PowerShell para establecer una o más variables con el objeto TSEnvironment . Para obtener más información, consulta Cómo usar variables en una secuencia de tareas en ejecución en el SDK de Configuration Manager.
Escenario de ejemplo con el paso de script Ejecutar PowerShell
Su entorno tiene usuarios en varios países o regiones, por lo que desea consultar el idioma del sistema operativo que se establecerá como condición en varios pasos de aplicación del sistema operativo específicos del idioma.
Agregue una instancia del script Ejecutar PowerShell a la secuencia de tareas antes de los pasos Aplicar sistema operativo .
Use la opción de escribir un script de PowerShell para especificar el siguiente comando:
(Get-Culture).TwoLetterISOLanguageNamePara obtener más información sobre el cmdlet, consulte Get-Culture. Para obtener más información sobre los nombres de lenguaje ISO de dos letras, vea Lista de códigos ISO 639-1.
Para la opción Salida a la variable de secuencia de tareas, especifique
CurrentOSLanguage.
En el paso Aplicar sistema operativo para la imagen en inglés, cree la siguiente condición:
Task Sequence Variable CurrentOSLanguage equals "en"
Sugerencia
Para obtener más información sobre cómo crear una condición en un paso, consulte Cómo acceder a variables - Condición de paso.
Guarde e implemente la secuencia de tareas.
Cuando el paso Ejecutar script de PowerShell se ejecuta en un dispositivo con la versión en inglés de Windows, el comando devuelve el valor en. A continuación, guarda ese valor en la variable personalizada. Cuando el paso Aplicar sistema operativo para la imagen en inglés se ejecuta en el mismo dispositivo, la condición se evalúa como true. Si tiene varias instancias del paso Aplicar sistema operativo para diferentes idiomas, la secuencia de tareas ejecuta dinámicamente el paso que coincide con el idioma del sistema operativo.
Variables de recopilación y dispositivo
Puede definir variables de secuencia de tareas personalizadas para dispositivos y colecciones. Las variables que defina para un dispositivo se conocen como variables de secuencia de tareas por dispositivo. Las variables definidas para una colección se conocen como variables de secuencia de tareas por colección. Si hay un conflicto, las variables por dispositivo tienen prioridad sobre las variables por colección. Este comportamiento significa que las variables de secuencia de tareas que se asignan automáticamente a un dispositivo específico tienen una prioridad mayor que las variables asignadas a la colección que contiene el dispositivo.
Por ejemplo, el dispositivo XYZ es miembro de la colección ABC. Asigna MyVariable a la colección ABC con un valor de 1. También asigna MyVariable al dispositivo XYZ con un valor de 2. La variable asignada a XYZ tiene mayor prioridad que la variable asignada a la colección ABC. Cuando una secuencia de tareas con esta variable se ejecuta en XYZ, MyVariable tiene un valor de 2.
Puedes ocultar las variables por dispositivo y por colección para que no estén visibles en la consola de Configuration Manager. Cuando utiliza la opción No mostrar este valor en la consola de Configuration Manager, el valor de la variable no se muestra en la consola. El archivo de registro de secuencia de tareas (smsts.log) o el depurador de secuencia de tareas tampoco mostrarán el valor de variable. La secuencia de tareas todavía puede usar la variable cuando se ejecuta. Si ya no desea ocultar estas variables, elimínelas primero. A continuación, redefina las variables sin seleccionar la opción para ocultarlas.
Advertencia
Si incluye variables en la línea de comandos del paso Ejecutar línea de comandos , el archivo de registro de secuencia de tareas muestra la línea de comandos completa, incluidos los valores de variable. Para evitar que aparezcan datos potencialmente confidenciales en el archivo de registro, establezca la variable de secuencia de tareas OSDDoNotLogCommand en TRUE.
Puede administrar variables por dispositivo en un sitio principal o en un sitio de administración central. Configuration Manager no admite más de 1000 variables asignadas para un dispositivo.
Importante
Al usar variables por colección para secuencias de tareas, tenga en cuenta los siguientes comportamientos:
Los cambios en las colecciones siempre se replican en toda la jerarquía. Los cambios que realice en las variables de colección no solo se aplican a los miembros del sitio actual, sino a todos los miembros de la colección en toda la jerarquía.
Al eliminar una colección, esta acción también elimina las variables de secuencia de tareas que configuró para la colección.
Crear variables de secuencia de tareas para un dispositivo
En la consola de Configuration Manager, vaya al área de trabajo Activos y cumplimiento y seleccione el nodo Dispositivos.
Selecciona el dispositivo de destino y elige Propiedades.
En el cuadro de diálogo Propiedades , cambie a la pestaña Variables .
Seleccione el icono Nuevo para cada variable que desee crear. Especifique el nombre y el valor de la variable de secuencia de tareas. Si desea ocultar la variable para que no sea visible en la consola de Configuration Manager, seleccione la opción No mostrar este valor en la consola de Configuration Manager.
Después de agregar todas las variables a las propiedades del dispositivo, seleccione Aceptar.
Crear variables de secuencia de tareas para una colección
En la consola de Configuration Manager, vaya al área de trabajo Activos y cumplimiento y seleccione el nodo Colecciones de dispositivos. Seleccione la colección de destino y elija Propiedades.
En el cuadro de diálogo Propiedades , cambie a la pestaña Variables de colección .
Seleccione el icono Nuevo para cada variable que desee crear. Especifique el nombre y el valor de la variable de secuencia de tareas. Si desea ocultar la variable para que no sea visible en la consola de Configuration Manager, seleccione la opción No mostrar este valor en la consola de Configuration Manager.
Opcionalmente, especifique la prioridad que se usará para que Configuration Manager la use cuando se evalúen las variables de secuencia de tareas.
Después de agregar todas las variables a las propiedades de la colección, seleccione Aceptar.
Objeto COM TSEnvironment
Para trabajar con variables de un script, utilice el objeto TSEnvironment .
Para obtener más información, consulta Cómo usar variables en una secuencia de tareas en ejecución en el SDK de Configuration Manager.
Comando Preinicio
El comando prestart es una secuencia de comandos o un archivo ejecutable que se ejecuta en Windows PE antes de que el usuario seleccione la secuencia de tareas. El comando prestart puede consultar una variable o solicitar información al usuario y, a continuación, guardarla en el entorno. Utilice el objeto COM TSEnvironment para leer y escribir variables del comando prestart.
Para obtener más información, consulte Comandos de preinicio para medios de secuencia de tareas.
Asistente para secuencias de tareas
Después de seleccionar una secuencia de tareas en la ventana del Asistente para secuencias de tareas, la página para editar variables de secuencia de tareas incluye un botón Editar . Puede usar métodos abreviados de teclado accesibles para editar las variables. Este cambio ayuda en los casos en que el mouse no está disponible.
Asistente para Medios de Secuencia de Tareas
Especifique variables para las secuencias de tareas que se ejecutan desde medios. Cuando se usan medios para implementar el sistema operativo, se agregan las variables de secuencia de tareas y se especifican sus valores al crear los medios. Las variables y sus valores se almacenan en el medio.
Nota:
Las secuencias de tareas se almacenan en medios independientes. Sin embargo, todos los demás tipos de medios, como los medios preconfigurados, recuperan la secuencia de tareas desde un punto de administración.
Cuando ejecuta una secuencia de tareas desde medios, puede agregar una variable en la página Personalización del asistente.
Use las variables de medios en lugar de las variables por colección o por equipo. Si la secuencia de tareas se ejecuta desde medios, las variables por equipo y por colección no se aplican y no se usan.
Sugerencia
La secuencia de tareas escribe el identificador de paquete y la línea de comandos de preinicio en el archivo CreateTSMedia.log del equipo que ejecuta la consola Configuration Manager. Este archivo de registro incluye el valor de cualquier variable de secuencia de tareas. Revise este archivo de registro para comprobar el valor de las variables de secuencia de tareas.
Para obtener más información, consulte Crear medios de secuencia de tareas.
Cómo acceder a las variables
Después de especificar la variable y su valor utilizando uno de los métodos de la sección anterior, úselo en las secuencias de tareas. Por ejemplo, acceder a los valores predeterminados de las variables de secuencia de tareas integradas o condicionar un paso al valor de una variable.
Utilice los métodos siguientes para acceder a los valores de las variables en el entorno de la secuencia de tareas:
- Uso en un paso
- Condición de paso
- Script personalizado
- Archivo de respuesta de la instalación de Windows
Uso en un paso
Especifique un valor de variable para una configuración en un paso de secuencia de tareas. En el editor de secuencia de tareas, edite el paso y especifique el nombre de la variable como valor de campo. Escriba el nombre de la variable entre signos de porcentaje (%).
Por ejemplo, use el nombre de la variable como parte del campo Línea de comandos del paso Ejecutar línea de comandos . La siguiente línea de comandos escribe el nombre del equipo en un archivo de texto.
cmd.exe /c echo %_SMSTSMachineName% > C:\File.txt
Condición de paso
Use variables de secuencia de tareas integradas o personalizadas como parte de una condición en un paso o grupo. La secuencia de tareas evalúa el valor de la variable antes de ejecutar el paso o grupo.
Para agregar una condición que evalúe un valor de variable, siga estos pasos:
En el editor de secuencias de tareas, seleccione el paso o grupo al que desea agregar la condición.
Cambie a la pestaña Opciones para el paso o grupo. Haga clic en Agregar condición y seleccione Variable de secuencia de tareas.
En el cuadro de diálogo Variable de secuencia de tareas , especifique la siguiente configuración:
Variable: El nombre de la variable. Por ejemplo,
_SMSTSInWinPE.Condición: La condición para evaluar el valor de la variable. Las siguientes condiciones están disponibles:
- Exists
- No existe
- Igual a
- No es igual a
- Mayor que
- Mayor o igual que
- Menor que
- Menor o igual que
- Like (admite comodines de
*y )? - No como (versión 2103 o posterior)
Valor: el valor de la variable que se va a comprobar. Por ejemplo,
false.
Los tres ejemplos anteriores forman una condición común para probar si la secuencia de tareas se ejecuta desde una imagen de arranque en Windows PE:
Variable de secuencia de tareas
_SMSTSInWinPE equals "false"
Consulte esta condición en el grupo Captura Files y configuración de la plantilla de secuencia de tareas predeterminada para instalar una imagen de sistema operativo existente.
Para obtener más información sobre las condiciones, consulte Editor de secuencia de tareas: condiciones.
Script personalizado
Lea y escriba variables utilizando el objeto COM Microsoft.SMS.TSEnvironment mientras se ejecuta la secuencia de tareas.
En el ejemplo de Windows PowerShell siguiente se consulta la variable _SMSTSLogPath para obtener la ubicación de registro actual. El script también establece una variable personalizada.
# 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 "$LogPath\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 la instalación de Windows
El archivo de respuesta de la instalación de Windows que proporcione puede tener variables de secuencia de tareas incrustadas. Use el formulario %varname%, donde varname es el nombre de la variable. El paso Configuración de Windows y ConfigMgr reemplaza la cadena de nombre de variable por el valor de variable real. Estas variables de secuencia de tareas incrustadas no se pueden usar en campos solo numéricos en un archivo de respuesta unattend.xml.
Para obtener más información, consulta Configuración de Windows y ConfigMgr.