Compartir a través de


Simplificación de la creación de runbook de Service Management Automation con recursos globales

Los recursos globales están disponibles para todos los runbooks de un entorno de Automation. Puede crearlos y configurarlos mediante el área de trabajo de Automation en el portal de administración o con los cmdlets adecuados en Windows PowerShell. Desde un runbook, puede recuperar y establecer valores para recursos globales con actividades en el módulo RunbookConstructs . Los cmdlets de Windows PowerShell están disponibles para su uso en runbooks en Service Management Automation, pero las actividades se recomiendan a medida que son más eficaces porque no tienen que trabajar a través del servicio web automation.

Obtención o establecimiento de credenciales

Una credencial de Automation es un nombre de usuario y una contraseña que se pueden usar con comandos de Windows PowerShell o un certificado que se carga en el servidor. Las propiedades de una credencial se almacenan de forma segura en la base de datos de Automation y se puede acceder a ellas en el runbook con la actividad Get-AutomationPSCredential o Get-AutomationCertificate .

PowerShell para administrar credenciales

Puede usar los cmdlets de la tabla siguiente para crear y administrar credenciales con Windows PowerShell en Service Management Automation.

Cmdlets Descripción
Get-SmaCertificate Recupera un certificado de Automation.
Get-SmaCredential Recupera una credencial de PowerShell de Automation.
Remove-SmaCertificate Quita un certificado de Automation.
Remove-SmaCredential Quita una credencial de PowerShell de Automation.
Set-SmaCertificate Crea un nuevo certificado o establece las propiedades de un certificado existente, incluida la carga del archivo de certificado y la configuración de la contraseña de un archivo .pfx.
Set-SmaCredential Crea una nueva credencial de PowerShell de Automation o establece las propiedades de una credencial existente.

PowerShell para trabajar con credenciales

Puede usar las actividades de la tabla siguiente para acceder a las credenciales de un runbook.

Actividades Descripción
Get-AutomationCertificate Obtiene un certificado que se va a usar en un runbook.
Get-AutomationPSCredential Obtiene un nombre de usuario o contraseña que se va a usar en un runbook.

Nota:

Debe evitar el uso de variables en el parámetro "Name de Get-AutomationPSCredential y Get-AutomationCertificate , ya que esto puede complicar la detección de dependencias entre runbooks y variables de Automation.

Creación de una credencial de PowerShell en el Portal de administración

  1. Seleccione el área de trabajo de Automation .

  2. En la parte superior de la ventana, seleccione Activos.

  3. En la parte inferior de la ventana, seleccione Agregar configuración.

  4. Seleccione Agregar credencial.

  5. En el menú desplegable Tipo de credenciales, seleccione Credencial de PowerShell.

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

  7. Seleccione la flecha derecha.

  8. Escriba los valores de cada propiedad.

  9. Seleccione la marca de verificación para guardar la credencial.

Creación de un certificado en

Portal de administración

  1. Seleccione el área de trabajo de Automation .

  2. En la parte superior de la ventana, seleccione Activos.

  3. En la parte inferior de la ventana, seleccione Agregar configuración.

  4. Seleccione Agregar credencial.

  5. En el menú desplegable Tipo de credenciales, seleccione Certificado.

  6. Escriba un nombre para el certificado en el cuadro Nombre .

  7. Seleccione la flecha derecha.

  8. Seleccione Examinar archivo y vaya a un archivo .cer o .pfx.

  9. Si seleccionó un archivo .pfx, proporcione su contraseña.

  10. Seleccione la marca de verificación para guardar el certificado.

Creación de una credencial con PowerShell

Los siguientes comandos de ejemplo muestran cómo crear una nueva credencial.

$webServer = 'https://MyWebServer'
$port = 9090
$credName = 'MyCredential'
$user = 'contoso\MyUser'
$pwd = ConvertTo-SecureString -String 'P@$$w0rd' -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user,$pwd

Set-SmaCredential -WebServiceEndpoint $webServer -port $port -Name $credName -Value $cred

Para crear un nuevo certificado de PowerShell con Windows PowerShell en Service Management Automation

Los siguientes comandos de ejemplo muestran cómo crear un certificado mediante la importación de un archivo de certificado.

$webServer = 'https://MyWebServer'
$port = 9090
$certName = 'MyCertificate'
$path = 'c:\certs\MyCertificate.pfx'
$certPwd = ConvertTo-SecureString -String 'P@$$w0rd' -AsPlainText -Force

Set-SmaCertificate -WebServiceEndpoint $webServer -port $port -Name $certName -Path $certPath -Password $certPwd

Uso de una credencial de PowerShell en un runbook

Puede recuperar una credencial de PowerShell en un runbook con la actividad Get-AutomationPSCredential . Esto devuelve un objeto PSCredential que puede usar en el flujo de trabajo.

  • Los comandos de ejemplo siguientes muestran cómo usar una credencial de PowerShell en un runbook. En este ejemplo, la credencial se usa con una actividad InlineScript para ejecutar un conjunto de comandos mediante credenciales alternativas.

    $myCredential = Get-AutomationPSCredential -Name 'MyCredential'
    InlineScript {
       <Commands>
    } -PSComputerName $ServerName -PSCredential $myCredential
    

Administración de conexiones SMA

Una conexión de Automation contiene la información necesaria para conectarse a un servicio o aplicación desde un runbook. Esta información se define en el módulo de la aplicación y normalmente incluye información como el nombre de usuario y la contraseña y el equipo al que conectarse. También se puede requerir otra información, como un certificado o un identificador de suscripción. Las propiedades de una conexión se almacenan de forma segura en la base de datos de Automation y se puede acceder a ellas en el runbook con la actividad Get-AutomationConnection .

Cmdlets de Windows PowerShell

Puede crear y administrar credenciales con los cmdlets de Windows PowerShell en la tabla siguiente.

Cmdlets Descripción
Get-SmaConnection Recupera los valores de cada campo de una conexión determinada.
Get-SmaConnectionField Recupera las definiciones de campo de un tipo de conexión determinado.
Get-SmaConnectionType Recupera los tipos de conexión disponibles.
New-SmaConnection Crea una conexión nueva.
Remove-SmaConnection Quita una conexión existente.
Set-SmaConnectionFieldValue Establece el valor de un campo determinado para una conexión existente.

Actividades de runbook

Puede acceder a las conexiones de un runbook con las actividades de la tabla siguiente.

Actividades Descripción
Get-AutomationConnection Obtiene una conexión que se va a usar en un runbook.

Creación de una conexión en el portal de administración

  1. Seleccione el área de trabajo de Automation .

  2. En la parte superior de la ventana, seleccione Activos.

  3. En la parte inferior de la ventana, seleccione Agregar configuración.

  4. Seleccione Agregar conexión.

  5. En la lista desplegable Tipo de conexión, seleccione un tipo de conexión.

  6. Escriba un nombre para la conexión en el cuadro Nombre .

  7. Seleccione la flecha derecha.

  8. Escriba un valor para cada propiedad.

  9. Seleccione la marca de verificación para guardar la conexión.

Creación de una conexión con Windows PowerShell

Los siguientes comandos de ejemplo crean una nueva conexión de Virtual Machine Manager con el nombre MyVMMConnection.

Nota:

Usamos una tabla hash para definir las propiedades de la conexión. Esto se debe a que los distintos tipos de conexiones requieren diferentes conjuntos de propiedades. Una conexión de otro tipo usaría un conjunto diferente de valores de campo.

Para obtener más información sobre las tablas hash, consulte about_Hash_Tables.

$webServer = 'https://MyWebServer'
$port = 9090
$connectionName = 'MyConnection'
$fieldValues = @{"Username"="MyUser";"Password"="password";"ComputerName"="MyComputer"}
New-SmaConnection -WebServiceEndpoint $webServer -port $port -Name $connectionName -ConnectionTypeName "VirtualMachineManager" -ConnectionFieldValues $fieldValues

Uso de una conexión en un runbook

Use la actividad Get-AutomationConnection para usar una conexión en un runbook. Esta actividad recupera los valores de los distintos campos de la conexión y los devuelve como una tabla hash, que después se puede usar con los comandos adecuados en el runbook.

Para obtener más información sobre las tablas hash, consulte about_Hash_Tables.

En el código de ejemplo siguiente se muestra cómo usar una conexión para proporcionar el nombre del equipo y las credenciales de un bloque InlineScript que ejecuta comandos en otro equipo.

$con = Get-AutomationConnection -Name 'MyConnection'
$securepassword = ConvertTo-SecureString -AsPlainText -String $con.Password -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $con.Username, $securepassword
InlineScript {
   <Commands>
} -PSComputerName $con.ComputerName -PSCredential $cred

Simplificación del desarrollo de runbook con variables globales

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

  • Comparta un valor entre varios runbooks.

  • Comparta un valor entre varios trabajos del mismo runbook.

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

Las variables de automatización se conservan para que sigan estando disponibles incluso si se produce un error en el runbook. Esto también permite establecer un valor mediante un runbook que, a continuación, usa otro o lo usa 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 para que el portal de administración pueda mostrar el control adecuado para el valor de la variable. Solo puede asignar un valor del tipo correcto a una variable.

  • Cadena

  • Entero

  • Booleano

  • 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 SMA y su valor no se puede recuperar del cmdlet Get-SmaVariable . La única manera en que se puede recuperar un valor cifrado es de la actividad Get-AutomationVariable en un runbook. Puede almacenar varios valores del tipo definido en una sola variable mediante la creación de una tabla hash.

Cmdlets de Windows PowerShell

Puede crear y administrar variables con los cmdlets de Windows PowerShell en la tabla siguiente.

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 runbook

Puede acceder a variables de un runbook con las actividades de la tabla siguiente.

Actividades Descripción
Get-AutomationVariable Recupera el valor de una variable existente.
Set-AutomationVariable Establece el valor de una variable existente.

Nota:

Debe evitar el uso de variables en el parámetro "Name de Get-AutomationVariable, ya que esto puede complicar la detección de dependencias entre runbooks y variables de Automation.

Creación de una variable en el portal de administración

  1. Seleccione el área de trabajo de Automation .

  2. En la parte superior de la ventana, seleccione Activos.

  3. En la parte inferior de la ventana, seleccione Agregar configuración.

  4. Seleccione 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. Seleccione la flecha derecha.

  8. Escriba un valor para la variable y especifique si se va a cifrar.

  9. Seleccione la marca de verificación para guardar la nueva variable.

Para crear una nueva variable con Windows PowerShell

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

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

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

Uso de 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 supone que ya se han creado variables de tipo entero denominado NumberOfIterations y NumberOfRunnings y una variable de tipo cadena denominada 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 (NumberOfRunnings += 1)
    

Pasos siguientes