Como utilizar variáveis de sequência de tarefas no Gestor de Configuração

Aplica-se a: Configuration Manager (ramo atual)

O motor da sequência de tarefas na função de implementação de SISTEMA do Gestor de Configuração utiliza muitas variáveis para controlar os seus comportamentos. Utilize estas variáveis para:

  • Definir condições nos passos
  • Alterar comportamentos para etapas específicas
  • Use em scripts para ações mais complexas

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.

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 é feita. Os seus valores estão disponíveis em toda a sequência de tarefas. Tipicamente, o motor da sequência de tarefa inicializa variáveis incorporadas antes de correr quaisquer passos.

Por exemplo, _SMSTSLogPath é uma variável de ambiente que especifica o caminho para o qual os componentes do Gestor de Configuração escrevem ficheiros de registo. Qualquer passo de sequência de tarefa pode aceder a esta variável ambiental.

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

Variáveis de ação

Variáveis de ação de sequência de tarefas especificam as definições de configuração que um único passo de sequência de tarefa utiliza. Por predefinição, o passo inicializa as suas 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 tarefa adiciona o valor variável de ação ao ambiente antes de passar o passo. Em seguida, remove o valor do ambiente após o passo.

Por exemplo, adicione o passo da Linha de Comando de Execução a uma sequência de tarefas. Este passo inclui uma propriedade Start In. A sequência de tarefas armazena um valor padrão para esta propriedade como WorkingDirectory variável. A sequência de tarefas inicializa este valor antes de executar o passo da Linha de Comando de Execução. Enquanto este passo está em execução, aceda ao valor da propriedade Start In a partir do WorkingDirectory 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 da Linha de Comando de Execução, rubrica uma nova WorkingDirectory variável. Nessa altura, a sequência de tarefas define a variável para o valor inicial para o passo atual. Para obter mais informações, consulte WorkingDirectory.

O valor predefinido para uma variável de ação está presente quando o passo é executado. Se definir um novo valor, está disponível para vários passos na sequência de tarefas. Se se sobrepor a um valor predefinido, o novo valor permanece no ambiente. Este novo valor sobrepõe-se ao valor predefinido para outros passos na sequência de tarefas. Por exemplo, adicione um passo variável de sequência de tarefa como primeiro passo da sequência de tarefas. Este passo define a WorkingDirectory variável para C:\ . Qualquer passo da Linha de Comando de Execução na sequência de tarefas utiliza o novo valor do diretório inicial.

Alguns passos de sequência de tarefa marcam certas variáveis de ação como saída. Passos mais tarde na sequência de tarefas ler estas variáveis de saída.

Nota

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 Enable BitLocker, não existem variáveis associadas à ação Desativador bitLocker.

Variáveis personalizadas

Estas variáveis são as que o Gestor de Configuração não cria. Inicialize as suas próprias variáveis para usar como condições, em linhas de comando ou em scripts.

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

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

  • Os nomes variáveis da sequência de tarefa têm um comprimento mínimo de um personagem e um comprimento máximo de 256 caracteres.

  • As variáveis definidas pelo utilizador devem começar com uma letra A-Z (ou a-z .

  • Os nomes 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 de leitura são precedidas pelo caráter de sublinhado.

  • Os nomes variáveis da sequência de tarefas não são sensíveis a casos. Por exemplo, OSDVAR e são a mesma osdvar variável de sequência de tarefa.

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

Não há 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 total de tamanho para o ambiente de sequência de tarefas é de 8 KB. Para obter mais informações, consulte Reduzir o tamanho da política de sequência de tarefas.

Variáveis apenas de leitura

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

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

Nota

As variáveis da sequência de tarefas de leitura só podem ser lidas por passos numa sequência de tarefas, mas não podem ser definidas. Por exemplo, utilize uma variável apenas de leitura como parte da linha de comando para um passo da Linha de Comando de Execução. Não é possível definir uma variável apenas de leitura utilizando o passo variável de sequência de tarefa definida.

Variáveis de matriz

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

Como definir variáveis

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

Eliminar uma variável do ambiente utilizando os mesmos métodos que criar uma variável. Para eliminar uma variável, desa um valor variável para uma cadeia vazia.

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

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

  1. Avalia as variáveis de recolha em primeiro lugar.

  2. As variáveis específicas do dispositivo sobrepõem-se à mesma variável definida 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 recolha ou dispositivo.

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

  • Os valores variáveis da sequência de tarefas não podem ser mais de 4.000 caracteres.

  • Não se 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 variáveis da sequência de tarefa podem ser sensíveis ao caso dependendo da utilização do valor. Na maioria dos casos, os valores variáveis da sequência de tarefas não são sensíveis a casos. Uma variável que inclui uma palavra-passe é sensível a maiôs.

Definir variável de sequência de tarefa

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

Para obter mais informações, consulte a variável de sequência de tarefas definida.

Definir variáveis dinâmicas

Utilize este passo na sequência de tarefas para definir uma ou mais variáveis de sequência de tarefa. Define regras neste passo para determinar quais variáveis e valores a utilizar.

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

Executar script PowerShell

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

Pode especificar um nome de script a partir de um pacote ou introduzir diretamente um script PowerShell no degrau. Em seguida, use a propriedade do passo para a saída para a variável de sequência de tarefa para guardar a saída do script para uma variável de sequência de tarefa personalizada.

Para obter mais informações sobre este passo, consulte executar o Script PowerShell.

Nota

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

Cenário de exemplo com passo de Script De PowerShell de execução

O seu ambiente tem utilizadores em vários países/regiões, pelo que pretende consultar a língua de SO para definir como condição em várias etapas de aplicação de sistemas operativos específicos para a linguagem.

  1. Adicione uma instância do Script 'Executar PowerShell' à sequência de tarefas antes dos passos de Aplicação do SISTEMA.

  2. Utilize a opção de introduzir um script 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 linguísticos ISO de duas letras, consulte a Lista dos códigos ISO 639-1.

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

    Screenshot do exemplo Executar Passo de Script PowerShell

  4. No passo de aplicar o SO para a imagem em língua inglesa, crie a seguinte condição: Task Sequence Variable CurrentOSLanguage equals "en"

    Screenshot da condição de exemplo no passo aplicar o SO

    Dica

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

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

Quando o passo do Script De Execução PowerShell funciona num dispositivo com a versão em inglês de Windows, o comando devolve o valor en . Em seguida, guarda esse valor na variável personalizada. Quando o passo de Aplicação do SO para a imagem em língua inglesa é executado no mesmo dispositivo, a condição avalia a verdade. Se tiver múltiplas instâncias do passo de Sistema de Aplicação para diferentes línguas, a sequência de tarefas executa dinamicamente o passo que corresponde à linguagem OS.

Variáveis de recolha e dispositivo

Pode definir variáveis de sequência de tarefas personalizadas para dispositivos e coleções. As variáveis que define 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 designadas variáveis de sequência de tarefas por coleção. Se houver um conflito, as variáveis por dispositivo têm precedência sobre variáveis por recolha. Este comportamento significa que as variáveis de sequência de tarefas atribuídas a um dispositivo específico têm automaticamente uma prioridade maior do que as variáveis que são 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 à XYZ tem maior prioridade do que a variável atribuída à recolha do ABC. Quando uma sequência de tarefa com esta variável corre em XYZ, MyVariable tem um valor de 2.

Pode ocultar variáveis por dispositivo e por recolha para que não sejam visíveis na consola Do Gestor de Configuração. Quando utilizar a opção Não apresente este valor na consola 'Gestor de Configuração', o valor da variável não é apresentado na consola. O ficheiro de registo de sequência de tarefas (smsts.log) ou o depurar sequência de tarefa também não mostram o valor variável. A variável ainda pode ser usada pela sequência de tarefas quando é executado. Se já não quiser que estas variáveis sejam ocultadas, apague-as primeiro. Em seguida, redefina as variáveis sem selecionar a opção de escondê-las.

Aviso

Se incluir variáveis na linha de comando da Linha de Comando de Execução, o ficheiro de registo de sequência de tarefas exibe a linha de comando completa, incluindo os valores variáveis. Para evitar que os dados potencialmente sensíveis apareçam no ficheiro de registo, detenha a variável de sequência de tarefas OSDDoNotLogCommand para TRUE .

Pode gerir variáveis por dispositivo num local primário ou num local de administração central. O Gestor de Configuração não suporta mais de 1.000 variáveis atribuídas para um dispositivo.

Importante

Quando utilizar variáveis por recolha para sequências de tarefas, considere os seguintes comportamentos:

  • As alterações nas coleções são sempre replicadas em toda a hierarquia. Quaisquer alterações que faça às variáveis de recolha 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 da sequência de tarefas que configuraste para a coleção.

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

  1. Na consola 'Gestor de Configuração', vá ao espaço de trabalho Ativos e Conformidade e selecione o nó dispositivos.

  2. Selecione o dispositivo alvo 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 novo ícone. Especificar o Nome e o Valor da variável da sequência de tarefas. Se pretender ocultar a variável de modo a que não seja visível na consola 'Gestor de Configuração', selecione a opção Não apresente este valor na consola 'Gestor de Configuração'.

  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 'Gestor de Configuração', vá ao espaço de trabalho Ativos e Conformidade e selecione o nó de Recolhas de Dispositivos. Selecione a recolha do alvo e escolha Propriedades.

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

  3. Para cada variável que pretende criar, selecione o novo ícone. Especificar o Nome e o Valor da variável da sequência de tarefas. Se pretender ocultar a variável de modo a que não seja visível na consola 'Gestor de Configuração', selecione a opção Não apresente este valor na consola 'Gestor de Configuração'.

  4. Opcionalmente, especifique a prioridade para o Gestor de Configuração utilizar quando as variáveis da sequência de tarefas forem avaliadas.

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

Objeto TSEnvironment COM

Para trabalhar com variáveis a partir de um script, use o objeto de ambiente TS.

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

Comando prestart

O comando prestart é um script ou executável que funciona em Windows PE antes que o utilizador selecione a sequência de tarefas. O comando prestart pode consultar uma variável ou solicitar 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 prestart.

Para obter mais informações, consulte os comandos de seqüê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 mudança ajuda nos casos em que um rato não está disponível.

Assistente de mídia de sequência de tarefa

Especificar variáveis para sequências de tarefas que são executadas a partir de meios de comunicação. Ao utilizar os meios de comunicação para implantar o SO, adicione as variáveis da sequência de tarefas e especifique os seus valores quando cria os meios de comunicação. As variáveis e os seus valores são armazenados nos meios de comunicação.

Nota

As sequências de tarefas são armazenadas em meios autónomos. No entanto, todos os outros tipos de meios, tais como os meios de comunicação, recuperam a sequência de tarefas de um ponto de gestão.

Quando executar uma sequência de tarefa a partir de meios, pode adicionar uma variável na página de Personalização do assistente.

Utilize as variáveis de suporte de dados em vez de variáveis por coleção ou por computador. Se a sequência de tarefas estiver a funcionar a partir de meios, as variáveis por computador e por recolha não se aplicam e não são utilizadas.

Dica

A sequência de tarefas escreve a linha de comando de ID e prestação para o ficheiro CreateTSMedia.log no computador que executa a consola 'Gestor de Configuração'. Este ficheiro de registo inclui o valor de quaisquer variáveis de sequência de tarefa. Reveja este ficheiro de registo para verificar o valor das variáveis da sequência de tarefas.

Para obter mais informações, consulte Criar os meios de seqüência de tarefas.

Como aceder a variáveis

Depois de especificar a variável e o seu valor utilizando um dos métodos da secção anterior, utilize-a nas sequências de tarefas. Por exemplo, aceder a valores predefinidos para variáveis de sequência de tarefas incorporadas ou condicionar um passo ao valor de uma variável.

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

Usar num passo

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

Por exemplo, utilize o nome variável como parte do campo da Linha de Comando do passo da Linha de Comando de Execução. A seguinte linha de comando 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 tarefa avalia o valor variável antes de correr o passo ou grupo.

Para adicionar uma condição que avalie um valor variável, faça os seguintes passos:

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

  2. Mude para o separador Opções para o passo ou grupo. Clique em Adicionar Estado e selecione a 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 variável. Estão disponíveis as seguintes condições:

      • Existe
      • Não existe
      • Igual a
      • Não é igual
      • Maior que
      • Maior do que ou igual
      • Menor que
      • Menos ou igual
      • Como
      • Não como (versão 2103 ou mais tarde)
    • 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 correr a partir de uma imagem de arranque em Windows PE:

Variável da sequência de tarefas_SMSTSInWinPE equals "false"

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

Para obter mais informações sobre as condições, consulte o editor de sequência de tarefas - Condições.

Script personalizado

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

O exemplo Windows PowerShell seguinte consulta a variável _SMSTSLogPath para obter a localização do log 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"

Windows ficheiro de resposta de configuração

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

Para mais informações, consulte Setup Windows and ConfigMgr.

Ver também