Compartir a través de


Variables

 

Se aplica a: Windows Azure Pack for Windows Server, System Center 2012 R2 Orchestrator

Las variables Automatización son valores que están disponibles para todos los runbooks. Se pueden crear, modificar y recuperar desde el portal de administración, Windows PowerShell o desde un runbook. Las variables Automatización son útiles para los escenarios siguientes:

  • Compartir un valor entre varios runbooks.

  • Compartir un valor entre varios trabajos del mismo runbook.

  • Administrar un valor desde el portal de administración o desde la línea de comandos de Windows PowerShell que usan los runbooks.

Las variables Automatización se conservan para que sigan estando disponibles, incluso si se produce un error en el runbook. Esto también permite que un runbook establezca un valor que después será utilizado por otro runbook, o por el mismo runbook la próxima vez que se ejecute.

Cuando se crea una variable, debe especificar su tipo de datos de la lista siguiente. Esto es así para que el Portal de administración pueda mostrar el control adecuado para el valor de la variable. Solo se puede asignar un valor del tipo correcto a una variable.

  • String

  • Integer

  • Boolean

  • Datetime

Cuando se crea una variable, puede especificar que se almacene cifrada. Cuando se cifra una variable, se almacena de forma segura en la base de datos de SMA y su valor no se puede recuperar con el cmdlet Get-SmaVariable. La única manera de recuperar un valor cifrado es con la actividad Get-AutomationVariable en un runbook. Para almacenar varios valores del tipo definido en una única variable puede crear una tabla hash.

Cmdlets de Windows PowerShell

Los cmdlets de la siguiente tabla se usan para crear y administrar variables con Windows PowerShell en Automatización de administración de servicios.

Cmdlets

Descripción

Get-SmaVariable

Recupera el valor de una variable existente.

Set-SmaVariable

Crea una nueva variable o establece el valor de una variable existente.

Actividades de runbooks

Las actividades de la siguiente tabla se usan para acceder a las variables de un runbook.

Actividades

Descripción

Get-AutomationVariable

Recupera el valor de una variable existente.

Set-AutomationVariable

Establece el valor de una variable existente.

Nota

Debe evitar usar variables en el parámetro –Name de Get-AutomationVariable porque esto puede complicar la detección de dependencias entre los runbooks y las variables de Automatización.

Crear una variable de automatización nueva

Para crear una variable nueva con el Portal de administración

  1. Seleccione el área de trabajo Automatización.

  2. En la parte superior de la ventana, haga clic en Activos.

  3. En la parte inferior de la ventana, haga clic en Agregar configuración.

  4. Haga clic en Agregar variable.

  5. En la lista desplegable Tipo, seleccione un tipo de datos.

  6. Escriba un nombre para la variable en el cuadro Nombre.

  7. Haga clic en la flecha derecha.

  8. Escriba un valor para la variable y especifique si debe cifrarse.

  9. Haga clic en la marca de verificación para guardar la nueva variable.

Para crear una nueva variable con Windows PowerShell en Service Management Automation

El cmdlet Set-SmaVariable crea una variable nueva y establece el valor de una variable existente. Los siguientes comandos de ejemplo muestran cómo crear una variable de tipo cadena.

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

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

Uso de una variable en un runbook

Utilice la actividad Get-AutomationVariable para utilizar una variable en un runbook.

Para utilizar una variable en un runbook

  • El código de ejemplo siguiente muestra cómo establecer y recuperar una variable en un runbook. En este ejemplo, se da por hecho que ya se han creado las variables de tipo Integer llamadas NumberOfIterations y NumberOfRunnings, y una variable de tipo String llamada SampleMessage.

    $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)