Condividi tramite


Semplificare la creazione di runbook di Service Management Automation con asset globali

Gli asset globali sono disponibili per tutti i runbook in un ambiente di automazione. Per crearli e configurarli, usare l'area di lavoro Automazione nel portale di gestione oppure il cmdlet appropriato in Windows PowerShell. Da un runbook è possibile recuperare e impostare i valori per gli asset globali tramite le attività nel modulo RunbookConstructs . I cmdlet di Windows PowerShell sono disponibili per l'uso nei runbook in Service Management Automation, ma le attività sono consigliate perché sono più efficienti perché non devono usare il servizio Web di Automazione.

Ottenere o impostare le credenziali

Una credenziale di automazione corrisponde a un nome utente e a una password che possono essere usati con i comandi di Windows PowerShell oppure a un certificato caricato nel server. Le proprietà di una credenziale vengono archiviate in modo sicuro nel database di Automazione e sono accessibili nel runbook con l'attività Get-AutomationPSCredential o Get-AutomationCertificate .

PowerShell per la gestione delle credenziali

È possibile usare i cmdlet nella tabella seguente per creare e gestire le credenziali con Windows PowerShell in Service Management Automation.

Cmdlet Descrizione
Get-SmaCertificate Recupera un certificato di automazione.
Get-SmaCredential Recupera le credenziali di PowerShell di Automazione.
Remove-SmaCertificate Rimuove un certificato di automazione.
Remove-SmaCredential Rimuove una credenziale di PowerShell per Automazione.
Set-SmaCertificate Crea un nuovo certificato o imposta le proprietà per un certificato esistente, compresi il caricamento di un file di certificato e l'impostazione della password per un file PFX.
Set-SmaCredential Crea una nuova credenziale di PowerShell di Automazione o imposta le proprietà per una credenziale esistente.

PowerShell per l'uso delle credenziali

È possibile usare le attività nella tabella seguente per accedere alle credenziali in un runbook.

Attività Descrizione
Get-AutomationCertificate Ottiene un certificato da usare in un Runbook.
Get-AutomationPSCredential Ottiene un nome utente/password da usare in un Runbook.

Nota

È consigliabile evitare di usare le variabili nel parametro "Nome di Get-AutomationPSCredential e Get-AutomationCertificate perché ciò può complicare l'individuazione delle dipendenze tra runbook e variabili di automazione.

Creare credenziali di PowerShell nel portale di gestione

  1. Selezionare l'area di lavoro Automazione .

  2. Nella parte superiore della finestra selezionare Asset.

  3. Nella parte inferiore della finestra selezionare Aggiungi impostazione.

  4. Selezionare Aggiungi credenziali.

  5. Nell'elenco a discesa Tipo di credenziali selezionare Credenziali PowerShell.

  6. Immettere un nome per le credenziali nella casella Nome .

  7. Seleziona la freccia destra.

  8. Immettere i valori per ogni proprietà.

  9. Selezionare il segno di spunta per salvare le credenziali.

Creare un certificato in

Portale di gestione

  1. Selezionare l'area di lavoro Automazione .

  2. Nella parte superiore della finestra selezionare Asset.

  3. Nella parte inferiore della finestra selezionare Aggiungi impostazione.

  4. Selezionare Aggiungi credenziali.

  5. Nell'elenco a discesa Tipo di credenziali selezionare Certificato.

  6. Immettere un nome per il certificato nella casella Nome .

  7. Seleziona la freccia destra.

  8. Selezionare Sfoglia per File e passare a un file .cer o pfx.

  9. Se si seleziona un file PFX, specificarne la password.

  10. Selezionare il segno di spunta per salvare il certificato.

Creare credenziali con PowerShell

I comandi di esempio seguenti illustrano come creare una nuova credenziale.

$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

Per creare un nuovo certificato di PowerShell con Windows PowerShell in Service Management Automation

I comandi di esempio seguenti illustrano come creare un nuovo certificato importando un file di certificato.

$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

Usare le credenziali di PowerShell in un runbook

È possibile recuperare una credenziale di PowerShell in un Runbook con l'attività Get-AutomationPSCredential . Viene restituito un oggetto PSCredential che è possibile usare nel flusso di lavoro.

  • I comandi di esempio seguenti mostrano come usare le credenziali PowerShell in un Runbook. In questo esempio, la credenziale viene usata con un'attività InlineScript per eseguire un set di comandi usando credenziali alternative.

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

Gestire le connessioni SMA

Una connessione di automazione contiene le informazioni necessarie per la connessione di un runbook a un servizio o a un'applicazione. Queste informazioni vengono definite nel modulo per l'applicazione e in genere includono il nome utente, la password e il computer a cui connettersi. È anche possibile che siano necessarie altre informazioni, ad esempio un certificato o un ID sottoscrizione. Le proprietà di una connessione vengono archiviate in modo sicuro nel database di Automazione e sono accessibili nel runbook con l'attività Get-AutomationConnection .

Cmdlet di Windows PowerShell

È possibile creare e gestire le credenziali con i cmdlet di Windows PowerShell nella tabella seguente.

Cmdlet Descrizione
Get-SmaConnection Recupera i valori per ogni campo di una determinata connessione.
Get-SmaConnectionField Recupera le definizioni di campo per un determinato tipo di connessione.
Get-SmaConnectionType Recupera i tipi di connessione disponibili.
New-SmaConnection Crea una nuova connessione.
Remove-SmaConnection Rimuove una connessione esistente.
Set-SmaConnectionFieldValue Imposta il valore di un campo specifico per una connessione esistente.

Attività del Runbook

È possibile accedere alle connessioni in un runbook con le attività nella tabella seguente.

Attività Descrizione
Get-AutomationConnection Ottiene una connessione da usare in un Runbook.

Creare una connessione nel portale di gestione

  1. Selezionare l'area di lavoro Automazione .

  2. Nella parte superiore della finestra selezionare Asset.

  3. Nella parte inferiore della finestra selezionare Aggiungi impostazione.

  4. Selezionare Aggiungi connessione.

  5. Nell'elenco a discesa Tipo di connessione selezionare un tipo di connessione.

  6. Immettere un nome per la connessione nella casella Nome .

  7. Seleziona la freccia destra.

  8. Immettere un valore per ogni proprietà.

  9. Selezionare il segno di spunta per salvare la connessione.

Creare una connessione con Windows PowerShell

I comandi di esempio seguenti creano una nuova connessione di Virtual Machine Manager con il nome MyVMMConnection.

Nota

Viene usata una tabella hash per definire le proprietà della connessione. poiché diversi tipi di connessioni richiedono diversi set di proprietà. Una connessione di un altro tipo userà un diverso set di valori di campo.

Per altre informazioni sulle tabelle hash, vedere 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

Usare una connessione in un runbook

Usare l'attività Get-AutomationConnection per usare una connessione in un runbook. Questa attività recupera i valori dei diversi campi nella connessione e li restituisce come tabella hash, che può quindi essere usata con i comandi appropriati nel runbook.

Per altre informazioni sulle tabelle hash, vedere about_Hash_Tables.

Il codice di esempio seguente illustra come usare una connessione per fornire il nome computer e le credenziali per un blocco InlineScript che esegue i comandi in un altro computer.

$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

Semplificare lo sviluppo di runbook con variabili globali

Le variabili di automazione sono valori disponibili per tutti i runbook. È possibile creare, modificare e recuperarli dal portale di gestione, Da Windows PowerShell o da un runbook. Le variabili di automazione sono utili per gli scenari seguenti:

  • Condividere un valore tra più Runbook.

  • Condividere un valore tra più processi dello stesso Runbook.

  • Gestire un valore dal portale di gestione o dalla riga di comando di Windows PowerShell usata dai Runbook.

Le variabili di automazione vengono mantenute in modo che continuino a essere disponibili anche se il runbook ha esito negativo. Ciò consente anche di impostare un valore da un runbook che viene quindi usato da un altro o viene usato dallo stesso runbook alla successiva esecuzione.

Quando viene creata una variabile, è necessario specificare il tipo di dati dall'elenco seguente, In questo modo il portale di gestione può visualizzare il controllo appropriato per il valore della variabile. A una variabile è possibile assegnare solo un valore del tipo corretto.

  • String

  • Intero

  • Booleano

  • Datetime

Quando si crea una variabile, è possibile specificare che venga archiviata in modalità crittografata. Quando una variabile è crittografata, viene archiviata in modo sicuro nel database SMA e il relativo valore non può essere recuperato dal cmdlet Get-SmaVariable . L'unico modo in cui è possibile recuperare un valore crittografato è dall'attività Get-AutomationVariable in un runbook. È possibile archiviare più valori del tipo definito in una singola variabile creando una tabella hash.

Cmdlet di Windows PowerShell

È possibile creare e gestire variabili con i cmdlet di Windows PowerShell nella tabella seguente.

Cmdlet Descrizione
Get-SmaVariable Recupera il valore di una variabile esistente.
Set-SmaVariable Crea una nuova variabile o imposta il valore per una variabile esistente.

Attività del Runbook

È possibile accedere alle variabili in un runbook con le attività nella tabella seguente.

Attività Descrizione
Get-AutomationVariable Recupera il valore di una variabile esistente.
Set-AutomationVariable Imposta il valore di una variabile esistente.

Nota

È consigliabile evitare di usare le variabili nel parametro "Nome di Get-AutomationVariable perché ciò può complicare l'individuazione delle dipendenze tra runbook e variabili di automazione.

Creare una nuova variabile nel portale di gestione

  1. Selezionare l'area di lavoro Automazione .

  2. Nella parte superiore della finestra selezionare Asset.

  3. Nella parte inferiore della finestra selezionare Aggiungi impostazione.

  4. Selezionare Aggiungi variabile.

  5. Nell'elenco a discesa Tipo selezionare un tipo di dati.

  6. Immettere un nome per la variabile nella casella Nome .

  7. Seleziona la freccia destra.

  8. Immettere un valore per la variabile e specificare se crittografarlo.

  9. Selezionare il segno di spunta per salvare la nuova variabile.

Per creare una nuova variabile con Windows PowerShell

Il cmdlet Set-SmaVariable crea una nuova variabile e imposta il valore per una variabile esistente. I comandi di esempio seguenti illustrano come creare una variabile di tipo String.

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

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

Usare una variabile in un runbook

  • Il codice di esempio seguente illustra come impostare e recuperare una variabile in un Runbook. In questo esempio si presuppone che siano già state create variabili di tipo integer denominate NumberOfIterations e NumberOfRunnings e una variabile di tipo stringa denominata 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)
    

Passaggi successivi