Como usar as variáveis de sequência de tarefas no Configuration ManagerHow to use task sequence variables in Configuration Manager

Aplica-se a: System Center Configuration Manager (Branch Atual)Applies to: System Center Configuration Manager (Current Branch)

O mecanismo de sequência de tarefas no recurso de implantação de sistema operacional do Configuration Manager usa muitas variáveis para controlar seus comportamentos.The task sequence engine in the OS deployment feature of Configuration Manager uses many variables to control its behaviors. Use essas variáveis para:Use these variables to:

  • Definir as condições nas etapasSet conditions on steps
  • Alterar os comportamentos de etapas específicasChange behaviors for specific steps
  • Usar em scripts para ações mais complexasUse in scripts for more complex actions

Para obter uma referência de todas as variáveis de sequência de tarefas disponíveis, consulte Variáveis de sequência de tarefas.For a reference of all available task sequence variables, see Task sequence variables.

Tipos de variáveisTypes of variables

Há muitos tipos de variáveis:There are several types of variables:

Variáveis internasBuilt-in variables

Variáveis internas fornecem informações sobre o ambiente em que a sequência de tarefas é executada.Built-in variables provide information about the environment where the task sequence runs. Seus valores estão disponíveis em toda a sequência de tarefas.Their values are available throughout the whole task sequence. Normalmente, o mecanismo de sequência de tarefas inicia variáveis internas antes de executar qualquer etapa.Typically, the task sequence engine initializes built-in variables before it runs any steps.

Por exemplo, a variável interna _SMSTSLogPath é uma variável de ambiente que especifica o caminho em que os componentes do Configuration Manager gravam arquivos de log.For example, _SMSTSLogPath is an environment variable that specifies the path to which Configuration Manager components write log files. Qualquer etapa de sequência de tarefas pode acessar essa variável de ambiente.Any task sequence step can access this environment variable.

A sequência de tarefas avalia algumas variáveis antes de cada etapa.The task sequence evaluates some variables before each step. Por exemplo, _SMSTSCurrentActionName lista o nome da etapa atual.For example, _SMSTSCurrentActionName lists the name of the current step.

Variáveis de açãoAction variables

Variáveis de ação de sequência de tarefas especificam definições de configuração usadas por uma única etapa em uma sequência de tarefas.Task sequence action variables specify configuration settings that a single task sequence step uses. Por padrão, a etapa inicia suas configurações antes da execução.By default, the step initializes its settings before it runs. Essas configurações estão disponíveis apenas enquanto a etapa de sequência de tarefas associada está em execução.These settings are available only while the associated task sequence step runs. A sequência de tarefas adiciona o valor da variável de ação ao ambiente antes de executar a etapa.The task sequence adds the action variable value to the environment before it runs the step. E remove o valor do ambiente após a etapa ser executada.It then removes the value from the environment after the step runs.

Por exemplo, você adiciona a etapa Executar Linha de Comando a uma sequência de tarefas.For example, you add the Run Command Line step to a task sequence. Esta etapa inclui uma propriedade Iniciar em.This step includes a Start In property. A sequência de tarefas armazena um valor padrão para essa propriedade como a variável WorkingDirectory.The task sequence stores a default value for this property as the WorkingDirectory variable. A sequência de tarefas inicia esse valor antes de executar a etapa Executar Linha de Comando.The task sequence initializes this value before it runs the Run Command Line step. Enquanto esta etapa estiver em execução, acesse o valor de propriedade Iniciar em pelo valor WorkingDirectory.While this step is running, access the Start In property value from the WorkingDirectory value. Depois que a etapa for concluída, a sequência de tarefas remove o valor da variável WorkingDirectory do ambiente.After the step completes, the task sequence removes the value of the WorkingDirectory variable from the environment. Se a sequência de tarefas inclui outra etapa Executar Linha de Comando, ela inicia uma nova variável WorkingDirectory.If the task sequence includes another Run Command Line step, it initializes a new WorkingDirectory variable. Nesse momento, a sequência de tarefas define a variável como o valor inicial da etapa atual.At that time, the task sequence sets the variable to the starting value for the current step. Para saber mais, confira WorkingDirectory.For more information, see WorkingDirectory.

O valor padrão de uma variável de ação está presente quando a etapa é executada.The default value for an action variable is present when the step runs. Se você definir um valor novo, ele estará disponível para várias etapas na sequência de tarefas.If you set a new value, it's available to multiple steps in the task sequence. Se você substituir um valor padrão, o novo valor permanecerá no ambiente.If you override a default value, the new value stays in the environment. Esse novo valor substitui o valor padrão das outras etapas na sequência de tarefas.This new value overrides the default value for other steps in the task sequence. Por exemplo, você adiciona uma etapa Definir Variável de Sequência de Tarefas como a primeira etapa da sequência de tarefas.For example, you add a Set Task Sequence Variable step as the first step of the task sequence. Esta etapa define a variável WorkingDirectory como C:\.This step sets the WorkingDirectory variable to C:\. Qualquer etapa Executar Linha de Comando na sequência de tarefas usa o novo valor de diretório inicial.Any Run Command Line step in the task sequence uses the new starting directory value.

Algumas etapas de sequência de tarefas marcam determinadas variáveis de ação como saída.Some task sequence steps mark certain action variables as output. Etapas posteriores na sequência de tarefas leem essas variáveis de saída.Steps later in the task sequence read these output variables.

Observação

Nem todas as etapas de sequência de tarefas têm variáveis de ação.Not all task sequence steps have action variables. Por exemplo, embora existam variáveis associadas à ação Habilitar BitLocker, não há variáveis associadas à ação Desabilitar BitLocker.For example, although there are variables associated with the Enable BitLocker action, there are no variables associated with the Disable BitLocker action.

Variáveis personalizadasCustom variables

Essas variáveis são as que o Configuration Manager não cria.These variables are any that Configuration Manager doesn't create. Inicie suas próprias variáveis para usar como condições, nas linhas de comando ou em scripts.Initialize your own variables to use as conditions, in command lines, or in scripts.

Quando você for especificar um nome para a nova variável de sequência de tarefas, siga estas diretrizes:When you specify a name for a new task sequence variable, follow these guidelines:

  • O nome da variável da sequência de tarefas pode conter letras, números, o caractere sublinhado (_) e um hífen (-).The task sequence variable name can include letters, numbers, the underscore character (_), and a hyphen (-).

  • Os nomes das variáveis da sequência de tarefas podem ter no mínimo um e no máximo 256 caracteres.Task sequence variable names have a minimum length of one character and a maximum length of 256 characters.

  • As variáveis definidas pelo usuário devem começar com uma letra (A-Z ou a-z).User-defined variables must begin with a letter (A-Z or a-z).

  • Os nomes das variáveis definidas pelo usuário não podem começar com o caractere sublinhado.User-defined variable names can't begin with the underscore character. Somente variáveis de sequência de tarefas somente leitura são precedidas pelo caractere sublinhado.Only read-only task sequence variables are preceded by the underscore character.

  • Os nomes das variáveis de sequência de tarefas não diferenciam maiúsculas de minúsculas.Task sequence variable names aren't case-sensitive. Por exemplo, OSDVAR e osdvar são a mesma variável de sequência de tarefas.For example, OSDVAR and osdvar are the same task sequence variable.

  • Os nomes das variáveis de sequência de tarefas não podem começar nem terminar com um espaço.Task sequence variable names can't begin or end with a space. Também não podem conter espaços.They also can't have embedded spaces. A sequência de tarefas ignora os espaços no começo ou no fim do nome de uma variável.The task sequence ignores any spaces at the beginning or the end of a variable name.

Não há um limite para quantas variáveis de sequência de tarefas podem ser criadas.There's no set limit to how many task sequence variables you can create. No entanto, o número de variáveis é limitado pelo tamanho do ambiente de sequência de tarefas.However, the number of variables is limited by the size of the task sequence environment. O limite do tamanho total para o ambiente da sequência de tarefas é de 32 MB.The total size limit for the task sequence environment is 32 MB.

Variáveis somente leituraRead-only variables

Não é possível alterar o valor de algumas variáveis que são somente leitura.You can't change the value of some variables, which are read-only. Normalmente, o nome começa com um caractere de sublinhado (_).Usually the name begins with an underscore character (_). A sequência de tarefas as usa para suas operações.The task sequence uses them for its operations. Variáveis somente leitura ficam visíveis no ambiente da sequência de tarefas.Read-only variables are visible in the task sequence environment.

Essas variáveis são úteis em scripts ou linhas de comando.These variables are useful in scripts or command-lines. Por exemplo, a execução de uma linha de comando e o direcionamento da saída para um arquivo de log em _SMSTSLogPath com os outros arquivos de log.For example, running a command line and piping the output to a log file in _SMSTSLogPath with the other log files.

Observação

As variáveis de sequência de tarefas somente leitura podem ser lidas pelas etapas de uma sequência de tarefas, mas não podem ser configuradas.Read-only task sequence variables can be read by steps in a task sequence but they can't be set. Por exemplo, use uma variável somente leitura como parte da linha de comando para uma etapa Executar Linha de Comando.For example, use a read-only variable as part of the command line for a Run Command Line step. Você não pode definir uma variável somente leitura usando a etapa Definir Variável de Sequência de Tarefas.You can't set a read-only variable by using the Set Task Sequence Variable step.

Variáveis de matrizArray variables

A sequência de tarefas armazena algumas variáveis como uma matriz.The task sequence stores some variables as an array. Cada elemento na matriz representa as configurações de um único objeto.Each element in the array represents the settings for a single object. Quando um dispositivo tem mais de um objeto para configurar, use essas variáveis.Use these variables when a device has more than one object to configure. As seguintes etapas de sequência de tarefas usam variáveis de matriz:The following task sequence steps use array variables:

Como definir variáveisHow to set variables

Para as variáveis personalizadas ou variáveis que não são somente leitura, há vários métodos para iniciar e definir o valor da variável:For custom variables or variables that aren't read-only, there are several methods to initialize and set the value of the variable:

Exclua uma variável do ambiente usando os mesmos métodos da criação de uma variável.Delete a variable from the environment by using the same methods as creating a variable. Para excluir uma variável, defina seu valor como uma cadeia de caracteres vazia.To delete a variable, set the variable value to an empty string.

Você pode combinar métodos para configurar uma variável de sequência de tarefas com valores diferentes para a mesma sequência.You can combine methods to set a task sequence variable to different values for the same sequence. Por exemplo, defina os valores padrão usando o editor de sequência de tarefas e, em seguida, defina valores personalizados, usando um script.For example, set the default values using the task sequence editor, and then set custom values using a script.

Se você definir a mesma variável por métodos diferentes, o mecanismo de sequência de tarefas usa a seguinte ordem:If you set the same variable by different methods, the task sequence engine uses the following order:

  1. Ela primeiro avalia as variáveis da coleção.It evaluates collection variables first.

  2. Variáveis específicas de dispositivos substituem a mesma variável definida em uma coleção.Device-specific variables override the same variable set on a collection.

  3. As variáveis definidas por qualquer método durante a sequência de tarefas têm precedência sobre variáveis de coleção ou dispositivo.Variables set by any method during the task sequence take precedence over collection or device variables.

Limitações gerais para valores de variáveis de sequência de tarefasGeneral limitations for task sequence variable values

  • Valores de variáveis de sequência de tarefas não podem ter mais de 4.000 caracteres.Task sequence variable values can't be more than 4,000 characters.

  • Você não pode alterar uma variável de sequência de tarefas somente leitura.You can't change a read-only task sequence variable. Variáveis somente leitura têm nomes que começam com um caractere de sublinhado (_).Read-only variables have names that start with an underscore character (_).

  • Os valores das variáveis de sequência de tarefas podem diferenciar maiúsculas de minúsculas dependendo do uso do valor.Task sequence variable values can be case-sensitive depending on the usage of the value. Na maioria dos casos, os valores das variáveis de sequência de tarefas não diferenciam maiúsculas de minúsculas.In most cases, task sequence variable values aren't case-sensitive. Uma variável que inclui uma senha diferencia maiúsculas de minúsculas.A variable that includes a password is case-sensitive.

Definir Variável de Sequência de TarefasSet Task Sequence Variable

Use essa etapa na sequência de tarefas para definir uma única variável em um único valor.Use this step in the task sequence to set a single variable to a single value.

Para saber mais, confira Definir Variáveis de Sequência de Tarefas.For more information, see Set Task Sequence Variable.

Definir Variáveis DinâmicasSet Dynamic Variables

Use essa etapa na sequência de tarefas para definir uma ou mais variáveis de sequência de tarefas.Use this step in the task sequence to set one or more task sequence variables. Você pode definir regras nesta etapa para determinar quais variáveis e valores usar.You define rules in this step to determine which variables and values to use.

Para obter mais informações, consulte Definir Variáveis Dinâmicas.For more information, see Set Dynamic Variables.

Variáveis de coleção e dispositivoCollection and device variables

Defina variáveis nas propriedades de uma coleção ou de um dispositivo específico.Set variables on the properties of a collection or a specific device.

Para saber mais, confira Criar variáveis de sequência de tarefas em computadores e coleções.For more information, see Create task sequence variables for computers and collections.

Objeto COM TSEnvironmentTSEnvironment COM object

Para trabalhar com variáveis de um script, use o objeto TSEnvironment.To work with variables from a script, use the TSEnvironment object.

Para saber mais, confira Como usar variáveis em uma sequência de tarefas em execução no SDK do Configuration Manager.For more information, see How to use variables in a running task sequence in the Configuration Manager SDK.

Comando prestartPrestart command

O comando prestart é um script ou um executável que é processado no Windows PE antes de o usuário selecionar a sequência de tarefas.The prestart command is a script or executable that runs in Windows PE before the user selects the task sequence. O comando prestart pode consultar uma variável ou solicitar que o usuário forneça informações e, em seguida, salvá-la no ambiente.The prestart command can query a variable or prompt the user for information, and then save it in the environment. Use o objeto COM TSEnvironment para ler e gravar as variáveis do comando prestart.Use the TSEnvironment COM object to read and write variables from the prestart command.

Para mais informações, consulte Comandos prestart para mídia de sequência de tarefas.For more information, see Prestart commands for task sequence media.

Assistente de Sequência de TarefasTask Sequence Wizard

A partir da versão 1906, depois de selecionar uma sequência de tarefas na janela do Assistente de Sequência de Tarefas, a página para editar variáveis de sequência de tarefas inclui um botão 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. Você pode usar atalhos de teclado acessíveis para editar as variáveis.You can use accessible keyboard shortcuts to edit the variables. Essa alteração ajuda nos casos em que um mouse não está disponível.This change helps in cases where a mouse isn't available.

Assistente de Mídia de Sequência de TarefasTask Sequence Media Wizard

Especifica variáveis de sequências de tarefas que são executadas da mídia.Specify variables for task sequences that run from media. Ao usar a mídia para implantar o sistema operacional, você adiciona as variáveis ​​da sequência de tarefas e especifica seus valores durante a criação da mídia.When using media to deploy the OS, you add the task sequence variables and specify their values when you create the media. As variáveis e seus valores são armazenados na mídia.The variables and their values are stored on the media.

Observação

As sequências de tarefas são armazenadas em mídia autônoma.Task sequences are stored on stand-alone media. No entanto, todos os outros tipos de mídia, tais como mídia em pré-teste, recuperam a sequência de tarefas por meio de um ponto de gerenciamento.However, all other types of media, such as prestaged media, retrieve the task sequence from a management point.

Ao executar uma sequência de tarefas de mídia, é possível adicionar uma variável na página Personalização do assistente.When you run a task sequence from media, you can add a variable on the Customization page of the wizard.

Use as variáveis de mídia em vez de variáveis por coleção ou por computador.Use the media variables in place of per-collection or per-computer variables. Se a sequência de tarefas for executada por meio de uma mídia, as variáveis por computador e por coleção não se aplicam e não são usadas.If the task sequence is running from media, per-computer and per-collection variables don't apply and aren't used.

Dica

A sequência de tarefas grava a ID do pacote e a linha de comando prestart no arquivo CreateTSMedia.log no computador que executa o console do 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. Esse arquivo de log inclui o valor de quaisquer variáveis da sequência de tarefas.This log file includes the value for any task sequence variables. Examine este arquivo de log para verificar o valor das variáveis da sequência de tarefas.Review this log file to verify the value for the task sequence variables.

Para saber mais, confira Criar mídia de sequência de tarefas.For more information, see Create task sequence media.

Como acessar variáveisHow to access variables

Após especificar a variável e seu valor usando um dos métodos da seção anterior, use-a em suas sequências de tarefas.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 exemplo, acesse os valores padrão das variáveis de sequência de tarefas internas ou crie uma etapa condicional ao valor de uma variável.For example, access default values for built-in task sequence variables, or make a step conditional on the value of a variable.

Use os seguintes métodos para acessar valores de variáveis no ambiente da sequência de tarefas:Use the following methods to access variable values in the task sequence environment:

Usar em uma etapaUse in a step

Especifique um valor de variável para uma configuração em uma etapa da sequência de tarefas.Specify a variable value for a setting in a task sequence step. No editor de sequência de tarefas, edite a etapa e especifique o nome da variável como o valor do campo.In the task sequence editor, edit the step, and specify the variable name as the field value. Coloque o nome da variável entre sinais de porcentagem (%).Enclose the variable name in percent signs (%).

Por exemplo, use o nome de uma variável como parte do campo Linha de Comando da etapa Executar Linha de Comando.For example, use the variable name as part of the Command Line field of the Run Command Line step. A linha de comando a seguir grava o nome do computador em um arquivo de texto.The following command line writes the computer name to a text file.

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

Condição da etapaStep condition

Use variáveis de sequência de tarefas internas ou personalizadas como parte de uma condição em uma etapa ou grupo.Use built-in or custom task sequence variables as part of a condition on a step or group. A sequência de tarefas avalia o valor da variável antes de executar a etapa ou grupo.The task sequence evaluates the variable value before it runs the step or group.

Para adicionar uma condição que avalia um valor de variável, faça o seguinte:To add a condition that evaluates a variable value, do the following steps:

  1. No editor de sequência de tarefas, selecione a etapa ou grupo ao qual você deseja adicionar a condição.In the task sequence editor, select the step or group to which you want to add the condition.

  2. Alterne para a guia Opções da etapa ou do grupo.Switch to the Options tab for the step or group. Clique em Adicionar Condição e selecione Variável de Sequência de Tarefas.Click Add Condition, and select Task Sequence Variable.

  3. Na caixa de diálogo Variável de Sequência de Tarefas, especifique as seguintes configurações:In the Task Sequence Variable dialog box, specify the following settings:

    • Variável: o nome da variável.Variable: The name of the variable. Por exemplo, _SMSTSInWinPE.For example, _SMSTSInWinPE.

    • Condição: a condição para avaliar o valor da variável.Condition: The condition to evaluate the variable value. Por exemplo, igual a.For example, equals.

    • Valor: o valor da variável a verificar.Value: The value of the variable to check. Por exemplo, false.For example, false.

Os três exemplos anteriores formam uma condição comum para testar se a sequência de tarefas está em execução de uma imagem de inicialização no 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:

Variável de Sequência de Tarefas _SMSTSInWinPE equals "false"Task Sequence Variable _SMSTSInWinPE equals "false"

Consulte essa condição no grupo Capturar Arquivos e Configurações do modelo da sequência de tarefas padrão para instalar uma imagem de sistema operacional 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

Leia e grave variáveis usando o objeto COM Microsoft.SMS.TSEnvironment enquanto a sequência de tarefas está em execução.Read and write variables by using the Microsoft.SMS.TSEnvironment COM object while the task sequence is running.

O exemplo do Windows PowerShell a seguir consulta a variável smstslogpath para obter o local do log atual.The following Windows PowerShell example queries the _SMSTSLogPath variable to get the current log location. O script também define uma variável 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"

Arquivo de resposta de instalação do WindowsWindows setup answer file

O arquivo de resposta de instalação do Windows que você fornece pode conter as variáveis da sequência de tarefas.The Windows setup answer file that you supply can have embedded task sequence variables. Use o formulário %varname%, em que varname é o nome da variável.Use the form %varname%, where varname is the name of the variable. A etapa Instalar Windows e ConfigMgr substitui a cadeia de caracteres do nome da variável pelos valores reais da variável.The Setup Windows and ConfigMgr step replaces the variable name string for the actual variable value. Essas variáveis de sequência de tarefas integradas não podem ser usadas em campos somente numéricos em um arquivo de resposta unattend.xml.These embedded task sequence variables can't be used in numeric-only fields in an unattend.xml answer file.

Para mais informações, consulte Configurar Windows e ConfigMgr.For more information, see Setup Windows and ConfigMgr.

Consulte tambémSee also