Compartilhar via


Como utilizar variáveis de sequência de tarefas no Configuration Manager

Aplica-se a: Configuration Manager (branch atual)

O motor de sequência de tarefas na funcionalidade de implementação do SO do Configuration Manager utiliza muitas variáveis para controlar os respetivos comportamentos. Utilize estas variáveis para:

  • Definir condições nos passos
  • Alterar comportamentos para passos específicos
  • Utilizar em scripts para ações mais complexas

Para obter uma referência de todas as variáveis de sequência de tarefas disponíveis, veja Variáveis de sequência de tarefas.

Tipos de variáveis

Existem vários tipos de variáveis:

Variáveis incorporadas

As variáveis incorporadas fornecem informações sobre o ambiente onde a sequência de tarefas é executada. Os respetivos valores estão disponíveis em toda a sequência de tarefas. Normalmente, o motor de sequência de tarefas inicializa as variáveis incorporadas antes de executar quaisquer passos.

Por exemplo, _SMSTSLogPath é uma variável de ambiente que especifica o caminho para o qual os componentes do Configuration Manager escrevem ficheiros de registo. Qualquer passo de sequência de tarefas pode aceder a esta variável de ambiente.

A sequência de tarefas avalia algumas variáveis antes de cada passo. Por exemplo, _SMSTSCurrentActionName lista o nome do passo atual.

Variáveis de ação

As variáveis de ação de sequência de tarefas especificam as definições de configuração utilizadas por um único passo de sequência de tarefas. Por predefinição, o passo inicializa as respetivas definições antes de ser executado. Estas definições só estão disponíveis enquanto o passo de sequência de tarefas associado for executado. A sequência de tarefas adiciona o valor da variável de ação ao ambiente antes de executar o passo. Em seguida, remove o valor do ambiente após a execução do passo.

Por exemplo, adicione o passo Executar Linha de Comandos a uma sequência de tarefas. Este passo inclui uma propriedade Iniciar Em . A sequência de tarefas armazena um valor predefinido para esta propriedade como a WorkingDirectory variável . A sequência de tarefas inicializa este valor antes de executar o passo Executar Linha de Comandos . Enquanto este passo estiver em execução, aceda ao valor da propriedade Iniciar Em a WorkingDirectory partir do valor . Após a conclusão do passo, a sequência de tarefas remove o valor da WorkingDirectory variável do ambiente. Se a sequência de tarefas incluir outro passo Executar Linha de Comandos , inicializa uma nova WorkingDirectory variável. Nessa altura, a sequência de tarefas define a variável para o valor inicial do passo atual. Para obter mais informações, consulte WorkingDirectory.

O valor predefinido de uma variável de ação está presente quando o passo é executado. Se definir um novo valor, este estará disponível para vários passos na sequência de tarefas. Se substituir um valor predefinido, o novo valor permanecerá no ambiente. Este novo valor substitui o valor predefinido para outros passos na sequência de tarefas. Por exemplo, adicione um passo Definir Variável de Sequência de Tarefas como o primeiro passo da sequência de tarefas. Este passo define a WorkingDirectory variável como C:\. Qualquer passo Executar Linha de Comandos na sequência de tarefas utiliza o novo valor de diretório inicial.

Alguns passos de sequência de tarefas marcam determinadas variáveis de ação como saída. Os passos posteriormente na sequência de tarefas leem estas variáveis de saída.

Observação

Nem todos os passos de sequência de tarefas têm variáveis de ação. Por exemplo, embora existam variáveis associadas à ação Ativar BitLocker , não existem variáveis associadas à ação Desativar BitLocker .

Variáveis personalizadas

Estas variáveis são as que o Configuration Manager não cria. Inicialize as suas próprias variáveis para utilizar como condições, em linhas de comandos ou em scripts.

Quando especificar um nome para uma nova variável de sequência de tarefas, siga estas diretrizes:

  • O nome da variável de sequência de tarefas pode incluir letras, números, o caráter de sublinhado (_) e um hífen (-).

  • Os nomes de variáveis de sequência de tarefas têm um comprimento mínimo de um caráter e um comprimento máximo de 256 carateres.

  • As variáveis definidas pelo utilizador têm de começar com uma letra (A-Z ou a-z).

  • Os nomes de variáveis definidos pelo utilizador não podem começar com o caráter de sublinhado. Apenas as variáveis de sequência de tarefas só de leitura são precedidas pelo caráter de sublinhado.

  • Os nomes das variáveis de sequência de tarefas não são sensíveis a maiúsculas e minúsculas. Por exemplo, OSDVAR e osdvar são a mesma variável de sequência de tarefas.

  • Os nomes de variáveis de sequência de tarefas não podem começar ou terminar com um espaço. Também não podem ter espaços incorporados. A sequência de tarefas ignora quaisquer espaços no início ou no fim de um nome de variável.

Não existe um limite definido para quantas variáveis de sequência de tarefas pode criar. No entanto, o número de variáveis é limitado pelo tamanho do ambiente de sequência de tarefas. O limite de tamanho total para o ambiente de sequência de tarefas é de 8 KB. Para obter mais informações, veja Reduzir o tamanho da política de sequência de tarefas.

Variáveis só de leitura

Não pode alterar o valor de algumas variáveis, que são só de leitura. Normalmente, o nome começa com um caráter de sublinhado (_). A sequência de tarefas utiliza-as para as operações. As variáveis só de leitura são visíveis no ambiente de sequência de tarefas.

Estas variáveis são úteis em scripts ou linhas de comandos. Por exemplo, executar uma linha de comandos e encaminhar a saída para um ficheiro de registo com _SMSTSLogPath os outros ficheiros de registo.

Observação

As variáveis de sequência de tarefas só de leitura podem ser lidas por passos numa sequência de tarefas, mas não podem ser definidas. Por exemplo, utilize uma variável só de leitura como parte da linha de comandos para um passo Executar Linha de Comandos . Não pode definir uma variável só de leitura com o passo Definir Variável de Sequência de Tarefas .

Variáveis de matriz

A sequência de tarefas armazena algumas variáveis como uma matriz. Cada elemento na matriz representa as definições de um único objeto. Utilize estas variáveis quando um dispositivo tiver mais do que um objeto para configurar. Os seguintes passos de sequência de tarefas utilizam variáveis de matriz:

Como definir variáveis

Para variáveis ou variáveis personalizadas que não são só de leitura, existem vários métodos para inicializar e definir o valor da variável:

Elimine uma variável do ambiente com os mesmos métodos que criar uma variável. Para eliminar uma variável, defina o valor da variável como uma cadeia vazia.

Pode combinar métodos para definir uma variável de sequência de tarefas para valores diferentes para a mesma sequência. Por exemplo, defina os valores predefinidos com o editor de sequência de tarefas e, em seguida, defina valores personalizados com um script.

Se definir a mesma variável por métodos diferentes, o motor de sequência de tarefas utiliza a seguinte ordem:

  1. Avalia primeiro as variáveis de coleção.

  2. As variáveis específicas do dispositivo substituem o mesmo conjunto de variáveis numa coleção.

  3. As variáveis definidas por qualquer método durante a sequência de tarefas têm precedência sobre as variáveis de coleção ou dispositivo.

Limitações gerais para valores de variáveis de sequência de tarefas

  • Os valores das variáveis de sequência de tarefas não podem ter mais de 4000 carateres.

  • Não pode alterar uma variável de sequência de tarefas só de leitura. As variáveis só de leitura têm nomes que começam com um caráter de sublinhado (_).

  • Os valores das variáveis de sequência de tarefas podem ser sensíveis a maiúsculas e minúsculas, consoante a utilização do valor. Na maioria dos casos, os valores das variáveis de sequência de tarefas não são sensíveis a maiúsculas e minúsculas. Uma variável que inclui uma palavra-passe é sensível às maiúsculas e minúsculas.

Definir Variável de Sequência de Tarefas

Utilize este passo na sequência de tarefas para definir uma única variável para um único valor.

Para obter mais informações, veja Definir Variável de Sequência de Tarefas.

Definir Variáveis Dinâmicas

Utilize este passo na sequência de tarefas para definir uma ou mais variáveis de sequência de tarefas. Neste passo, vai definir regras para determinar quais as variáveis e os valores a utilizar.

Para obter mais informações, veja Definir Variáveis Dinâmicas.

Executar Script do PowerShell

Utilize este passo na sequência de tarefas para utilizar um script do PowerShell para definir uma variável de sequência de tarefas.

Pode especificar um nome de script a partir de um pacote ou introduzir diretamente um script do PowerShell no passo. Em seguida, utilize a propriedade step para Output to task sequence variable (Saída para a variável de sequência de tarefas ) para guardar a saída do script numa variável de sequência de tarefas personalizada.

Para obter mais informações sobre este passo, veja Executar o Script do PowerShell.

Observação

Também pode utilizar um script do PowerShell para definir uma ou mais variáveis com o objeto TSEnvironment . Para obter mais informações, veja Como utilizar variáveis numa sequência de tarefas em execução no SDK do Configuration Manager.

Cenário de exemplo com o passo Executar Script do PowerShell

O seu ambiente tem utilizadores em vários países/regiões, pelo que pretende consultar a linguagem do SO para definir como uma condição em vários passos de Aplicar SO específicos do idioma.

  1. Adicione uma instância do Script executar o PowerShell à sequência de tarefas antes dos passos Aplicar SO .

  2. Utilize a opção para Introduzir um script do PowerShell para especificar o seguinte comando:

    (Get-Culture).TwoLetterISOLanguageName
    

    Para obter mais informações sobre o cmdlet, consulte Get-Culture. Para obter mais informações sobre os nomes de idioma ISO de duas letras, consulte Lista de códigos ISO 639-1.

  3. Para a opção de Saída para variável de sequência de tarefas, especifique CurrentOSLanguage.

    Captura de ecrã do passo Executar Script do PowerShell de exemplo

  4. No passo Aplicar SO para a imagem de idioma inglês, crie a seguinte condição: Task Sequence Variable CurrentOSLanguage equals "en"

    Captura de ecrã da condição de exemplo no passo Aplicar SO

    Dica

    Para obter mais informações sobre como criar uma condição num passo, veja Como aceder a variáveis – Condição do passo.

  5. Guarde e implemente a sequência de tarefas.

Quando o passo Executar Script do PowerShell é executado num dispositivo com a versão em inglês do Windows, o comando devolve o valor en. Em seguida, guarda esse valor na variável personalizada. Quando o passo Aplicar SO para a imagem de idioma inglês é executado no mesmo dispositivo, a condição é avaliada como verdadeira. Se tiver várias instâncias do passo Aplicar SO para idiomas diferentes, a sequência de tarefas executa dinamicamente o passo que corresponde à linguagem do SO.

Variáveis de coleção e dispositivo

Pode definir variáveis de sequência de tarefas personalizadas para dispositivos e coleções. As variáveis que definir para um dispositivo são referidas como variáveis de sequência de tarefas por dispositivo. As variáveis definidas para uma coleção são referidas como variáveis de sequência de tarefas por coleção. Se existir um conflito, as variáveis por dispositivo têm precedência sobre as variáveis por coleção. Este comportamento significa que as variáveis de sequência de tarefas atribuídas a um dispositivo específico têm automaticamente uma prioridade superior às variáveis atribuídas à coleção que contém o dispositivo.

Por exemplo, o dispositivo XYZ é um membro da coleção ABC. Atribui MyVariable à coleção ABC com um valor de 1. Também atribui MyVariable ao dispositivo XYZ com um valor de 2. A variável atribuída ao XYZ tem uma prioridade superior à variável atribuída à coleção ABC. Quando uma sequência de tarefas com esta variável é executada no XYZ, MyVariable tem um valor de 2.

Pode ocultar variáveis por dispositivo e por coleção para que não fiquem visíveis na consola do Configuration Manager. Quando utiliza a opção Não apresentar este valor na consola do Configuration Manager, o valor da variável não é apresentado na consola do . O ficheiro de registo da sequência de tarefas (smsts.log) ou o depurador da sequência de tarefas também não mostrarão o valor da variável. A variável ainda pode ser utilizada pela sequência de tarefas quando é executada. Se já não quiser que estas variáveis sejam ocultadas, elimine-as primeiro. Em seguida, redefina as variáveis sem selecionar a opção para as ocultar.

Aviso

Se incluir variáveis na linha de comandos do passo Executar Linha de Comandos , o ficheiro de registo da sequência de tarefas apresenta a linha de comandos completa, incluindo os valores das variáveis. Para impedir que os dados potencialmente confidenciais apareçam no ficheiro de registo, defina a variável de sequência de tarefas OSDDoNotLogCommand como TRUE.

Pode gerir variáveis por dispositivo num site primário ou num site de administração central. O Configuration Manager não suporta mais de 1000 variáveis atribuídas para um dispositivo.

Importante

Quando utiliza variáveis por coleção para sequências de tarefas, considere os seguintes comportamentos:

  • As alterações às coleções são sempre replicadas em toda a hierarquia. Quaisquer alterações efetuadas às variáveis de coleção aplicam-se não só aos membros do site atual, mas a todos os membros da coleção em toda a hierarquia.

  • Quando elimina uma coleção, esta ação também elimina as variáveis de sequência de tarefas que configurou para a coleção.

Criar variáveis de sequência de tarefas para um dispositivo

  1. Na consola do Configuration Manager, aceda à área de trabalho Ativos e Compatibilidade e selecione o nó Dispositivos .

  2. Selecione o dispositivo de destino e selecione Propriedades.

  3. Na caixa de diálogo Propriedades , mude para o separador Variáveis .

  4. Para cada variável que pretende criar, selecione o ícone Novo . Especifique o Nome e o Valor da variável de sequência de tarefas. Se quiser ocultar a variável para que não esteja visível na consola do Configuration Manager, selecione a opção Não apresentar este valor na consola do Configuration Manager.

  5. Depois de adicionar todas as variáveis às propriedades do dispositivo, selecione OK.

Criar variáveis de sequência de tarefas para uma coleção

  1. Na consola do Configuration Manager, aceda à área de trabalho Ativos e Compatibilidade e selecione o nó Coleções de Dispositivos . Selecione a coleção de destino e selecione Propriedades.

  2. Na caixa de diálogo Propriedades , mude para o separador Variáveis de Coleção .

  3. Para cada variável que pretende criar, selecione o ícone Novo . Especifique o Nome e o Valor da variável de sequência de tarefas. Se quiser ocultar a variável para que não esteja visível na consola do Configuration Manager, selecione a opção Não apresentar este valor na consola do Configuration Manager.

  4. Opcionalmente, especifique a prioridade para o Configuration Manager utilizar quando as variáveis de sequência de tarefas são avaliadas.

  5. Depois de adicionar todas as variáveis às propriedades da coleção, selecione OK.

Objeto TSEnvironment COM

Para trabalhar com variáveis de um script, utilize o objeto TSEnvironment .

Para obter mais informações, veja Como utilizar variáveis numa sequência de tarefas em execução no SDK do Configuration Manager.

Comando de pré-início

O comando de pré-início é um script ou executável executado no Windows PE antes de o utilizador selecionar a sequência de tarefas. O comando de pré-início pode consultar uma variável ou pedir informações ao utilizador e, em seguida, guardá-la no ambiente. Utilize o objeto TSEnvironment COM para ler e escrever variáveis a partir do comando de pré-início.

Para obter mais informações, veja Comandos de pré-início para suportes de dados de sequência de tarefas.

Assistente de Sequência de Tarefas

Depois de selecionar uma sequência de tarefas na janela Assistente de Sequência de Tarefas, a página para editar variáveis de sequência de tarefas inclui um botão Editar . Pode utilizar atalhos de teclado acessíveis para editar as variáveis. Esta alteração ajuda nos casos em que um rato não está disponível.

Assistente de Suportes de Dados da Sequência de Tarefas

Especifique variáveis para sequências de tarefas executadas a partir de suportes de dados. Ao utilizar suportes de dados para implementar o SO, adicione as variáveis de sequência de tarefas e especifique os respetivos valores quando criar o suporte de dados. As variáveis e os respetivos valores são armazenados no suporte de dados.

Observação

As sequências de tarefas são armazenadas em suportes de dados autónomos. No entanto, todos os outros tipos de suporte de dados, como suportes de dados pré-configurados, obtêm a sequência de tarefas a partir de um ponto de gestão.

Quando executa uma sequência de tarefas a partir de suportes de dados, pode adicionar uma variável na página Personalização do assistente.

Utilize as variáveis de multimédia em vez de variáveis por coleção ou por computador. Se a sequência de tarefas estiver a ser executada a partir de suportes de dados, as variáveis por computador e por coleção não se aplicam e não são utilizadas.

Dica

A sequência de tarefas escreve o ID do pacote e a linha de comandos de pré-início no ficheiro CreateTSMedia.log no computador que executa a consola do Configuration Manager. Este ficheiro de registo inclui o valor de quaisquer variáveis de sequência de tarefas. Reveja este ficheiro de registo para verificar o valor das variáveis de sequência de tarefas.

Para obter mais informações, veja Criar suporte de dados de sequência de tarefas.

Como aceder a variáveis

Depois de especificar a variável e o respetivo valor através de um dos métodos da secção anterior, utilize-a nas sequências de tarefas. Por exemplo, aceda a valores predefinidos para variáveis de sequência de tarefas incorporadas ou torne um passo condicional no valor de uma variável.

Utilize os seguintes métodos para aceder a valores variáveis no ambiente de sequência de tarefas:

Utilizar num passo

Especifique um valor variável para uma definição num passo de sequência de tarefas. No editor de sequência de tarefas, edite o passo e especifique o nome da variável como o valor do campo. Coloque o nome da variável em sinais de percentagem (%).

Por exemplo, utilize o nome da variável como parte do campo Linha de Comandos do passo Executar Linha de Comandos . A seguinte linha de comandos escreve o nome do computador num ficheiro de texto.

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

Condição do passo

Utilize variáveis de sequência de tarefas incorporadas ou personalizadas como parte de uma condição num passo ou grupo. A sequência de tarefas avalia o valor da variável antes de executar o passo ou grupo.

Para adicionar uma condição que avalia um valor variável, siga os seguintes passos:

  1. No editor de sequência de tarefas, selecione o passo ou grupo ao qual pretende adicionar a condição.

  2. Mude para o separador Opções do passo ou grupo. Clique em Adicionar Condição e selecione Variável de Sequência de Tarefas.

  3. Na caixa de diálogo Variável de Sequência de Tarefas , especifique as seguintes definições:

    • Variável: o nome da variável. Por exemplo, _SMSTSInWinPE.

    • Condição: a condição para avaliar o valor da variável. Estão disponíveis as seguintes condições:

      • Saídas
      • Não existe
      • Igual a
      • Não é igual a
      • Maior que
      • Maior ou igual a
      • Menor que
      • Menor ou igual a
      • Like (suporta carateres universais de * e ?)
      • Não é como (versão 2103 ou posterior)
    • Valor: o valor da variável a verificar. Por exemplo, false.

Os três exemplos acima formam uma condição comum para testar se a sequência de tarefas está a ser executada a partir de uma imagem de arranque no Windows PE:

Variável de Sequência de Tarefas_SMSTSInWinPE equals "false"

Veja esta condição no grupo Capturar Ficheiros e Definições do modelo de sequência de tarefas predefinido para instalar uma imagem de SO existente.

Para obter mais informações sobre as condições, veja Editor de sequência de tarefas – Condições.

Script personalizado

Leia e escreva variáveis com o objeto COM Microsoft.SMS.TSEnvironment enquanto a sequência de tarefas está em execução.

O exemplo seguinte do Windows PowerShell consulta a variável _SMSTSLogPath para obter a localização de registo atual. O script também define uma variável 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"

Ficheiro de resposta da configuração do Windows

O ficheiro de resposta de configuração do Windows que fornecer pode ter variáveis de sequência de tarefas incorporadas. Utilize o formulário %varname%, em que varname é o nome da variável. O passo Configurar Windows e ConfigMgr substitui a cadeia de nome da variável para o valor real da variável. Estas variáveis de sequência de tarefas incorporadas não podem ser utilizadas em campos apenas numéricos num ficheiro de resposta unattend.xml.

Para obter mais informações, consulte Configurar o Windows e o ConfigMgr.

Confira também