Variáveis

 

Aplica-se a: Windows Azure Pack for Windows Server, System Center 2012 R2 Orchestrator

Automation variáveis são valores que estão disponíveis para todos os runbooks. Podem ser criadas, modificadas e obtidas a partir do portal de gestão, do Windows PowerShell ou de um runbook. Automation as variáveis são úteis para os cenários seguintes:

  • Partilhar um valor entre vários runbooks.

  • Partilhar um valor entre várias tarefas do mesmo runbook.

  • Gerir um valor a partir do portal de gestão ou da linha de comandos do Windows PowerShell utilizada pelos runbooks.

Automation As variáveis são persistentes para continuarem a estar disponíveis, mesmo que o runbook falhe. Isto também permite que um valor seja definido por um runbook e que será, posteriormente, utilizado por outro ou que é utilizado pelo mesmo runbook da vez seguinte que for executado.

Quando uma variável é criada, é necessário especificar o respetivo tipo de dados a partir da lista seguinte. Isto é necessário para que o portal de gestão possa apresentar o controlo apropriado para o valor da variável. Só é possível atribuir um valor do tipo correto a uma variável.

  • Cadeia

  • Número inteiro

  • Booleano

  • Datetime

Quando uma variável é criada, é possível indicar que esta seja armazenada encriptada. Quando uma variável é encriptada, é armazenada em segurança na base de dados do SMA e o respetivo valor não pode ser obtido a partir do cmdlet Get-SmaVariable. A única forma de um valor encriptado poder ser obtido é a partir da atividade de Get-AutomationVariable num runbook. É possível armazenar vários valores do tipo definido para uma única variável através da criação de uma tabela hash.

Cmdlets do Windows PowerShell

Os cmdlets na tabela seguinte são utilizados para criar e gerir variáveis com o Windows PowerShell no Service Management Automation.

Cmdlets

Descrição

Get-SmaVariable

Obtém o valor de uma variável existente.

Set-SmaVariable

Cria uma variável nova ou define o valor de uma variável existente.

Atividades do Runbook

As atividades da tabela seguinte são utilizadas para aceder a variáveis num runbook.

Atividades

Descrição

Get-AutomationVariable

Obtém o valor de uma variável existente.

Set-AutomationVariable

Define o valor de uma variável existente.

Nota

Deve evitar utilizar variáveis no parâmetro –Name de Get-AutomationVariable, uma vez que isso pode dificultar a deteção de dependências entre runbooks e variáveis do Automation.

Criar uma nova variável de Automatização

Para criar uma variável nova através do portal de gestão

  1. Selecione a área de trabalho Automatização.

  2. Na parte superior da janela, clique em Ativos.

  3. Na parte inferior da janela, clique em Adicionar Definição.

  4. Clique em Adicionar Variável.

  5. Na lista pendente Tipo, selecione um tipo de dados.

  6. Escreva um nome para a variável na caixa Nome.

  7. Clique na seta para a direita.

  8. Escreva um valor para a variável e especifique se deve ser encriptada.

  9. Clique na marca de verificação para guardar a variável nova.

Para criar uma variável nova com o Windows PowerShell no Service Management Automation

O cmdlet Set-SmaVariable cria uma nova variável e define o valor para uma variável existente. Os comandos de exemplo seguintes explicam como criar uma variável de cadeia de tipo.

$web = 'https://MySMAServer'
$port = 9090

Set-SMAVariable –WebServiceEndpoint $web –Port $port –Name 'MyVariable' –Value 'My String'

Utilizar uma variável num runbook

Utilize a atividade de Get-AutomationVariable para utilizar uma variável num runbook.

Para utilizar uma variável num runbook

  • O código de exemplo seguinte mostra como definir e obter uma variável num runbook. Neste exemplo, presume-se que as variáveis do tipo número inteiro denominadas NumberOfIterations e NumberOfRunnings e uma variável de cadeia de tipo denominada SampleMessage já foram criadas.

    $NumberOfIterations = Get-AutomationVariable -Name 'NumberOfIterations'
    $NumberOfRunnings = Get-AutomationVariable -Name 'NumberOfRunnings'
    $SampleMessage = Get-AutomationVariable -Name 'SampleMessage'
    Write-Output "Runbook has been run $NumberOfRunnings times."
    for ($i = 1; $i -le $NumberOfIterations; $i++) {
       Write-Output "$i`: $SampleMessage"
    }
    Set-AutomationVariable –Name NumberOfRunnings –Value (NumberOfRunngs += 1)