Förenkla Service Management Automation runbook-redigering med globala tillgångar

Viktigt

Den här versionen Service Management Automation (SMA) har nått slutet av supporten. Vi rekommenderar att du uppgraderar till SMA 2022.

Globala tillgångar är tillgängliga för alla runbooks i en Automation-miljö. Du skapar och konfigurerar dem med antingen arbetsytan Automatisering i hanteringsportalen eller med lämpliga cmdlets i Windows PowerShell. Från en runbook kan du hämta och ange värden för globala tillgångar med aktiviteter i modulen RunbookConstructs . De Windows PowerShell cmdletarna är tillgängliga för användning i runbooks i Service Management Automation, men aktiviteterna rekommenderas eftersom de är mer effektiva eftersom de inte behöver arbeta via Automation-webbtjänsten.

Hämta eller ange autentiseringsuppgifter

Autentiseringsuppgifter för automation är antingen ett användarnamn och ett lösenord som du kan använda med Windows PowerShell-kommandon eller ett certifikat som överförs till servern. Egenskaperna för autentiseringsuppgifter lagras på ett säkert sätt i Automation-databasen och kan nås i runbooken med antingen aktiviteten Get-AutomationPSCredential eller Get-AutomationCertificate .

PowerShell för att hantera autentiseringsuppgifter

Du kan använda cmdletarna i följande tabell för att skapa och hantera autentiseringsuppgifter med Windows PowerShell i Service Management Automation.

Cmdletar Description
Get-SmaCertificate Hämtar ett Automation-certifikat.
Get-SmaCredential Hämtar en Automation PowerShell-autentiseringsidentifiering.
Remove-SmaCertificate Tar bort ett Automation-certifikat.
Remove-SmaCredential Tar bort autentiseringsuppgifter för Automation PowerShell.
Set-SmaCertificate Skapar ett nytt certifikat eller anger egenskaperna för ett befintligt certifikat, inklusive överföring av certifikatfilen och inställning av lösenordet för en PFX-fil.
Set-SmaCredential Skapar nya Automation PowerShell-autentiseringsuppgifter eller anger egenskaperna för en befintlig autentiseringsidentifiering.

PowerShell för att arbeta med autentiseringsuppgifter

Du kan använda aktiviteterna i följande tabell för att komma åt autentiseringsuppgifter i en runbook.

Aktiviteter Description
Get-AutomationCertificate Hämtar ett certifikat för användning i en runbook.
Get-AutomationPSCredential Hämtar ett användarnamn/lösenord för användning i en runbook.

Anteckning

Du bör undvika att använda variabler i parametern "Name i Get-AutomationPSCredential och Get-AutomationCertificate eftersom detta kan komplicera identifiering av beroenden mellan runbooks och Automation-variabler.

Skapa en PowerShell-autentiseringsidentifiering i Hanteringsportal

  1. Välj arbetsytan Automation .

  2. Klicka på Tillgångar längst upp i fönstret.

  3. Klicka på Lägg till inställninglängst ner i fönstret.

  4. Klicka på Lägg till autentiseringsuppgifter.

  5. I listrutan Typ av autentiseringsuppgifter väljer du PowerShell-autentiseringsuppgifter.

  6. Ange ett namn för autentiseringssuppgifter i rutan Namn.

  7. Klicka på högerpilen.

  8. Ange värden för varje egenskap.

  9. Klicka på kryssmarkeringen för att spara autentiseringsuppgiften.

Skapa ett certifikat i

Hanteringsportal

  1. Välj arbetsytan Automation .

  2. Klicka på Tillgångar längst upp i fönstret.

  3. Klicka på Lägg till inställninglängst ner i fönstret.

  4. Klicka på Lägg till autentiseringsuppgifter.

  5. I listrutan Typ av autentiseringsuppgifter väljer du Certifikat.

  6. Skriv ett namn för certifikatet i rutan Namn.

  7. Klicka på högerpilen.

  8. Klicka på Bläddra efter fil och gå till antingen en .cer- eller .pfx-fil.

  9. Om du har valt en PFX-fil ger du filens lösenord.

  10. Klicka på kryssmarkeringen för att spara certifikatet.

Skapa en autentiseringsidentifiering med PowerShell

Följande exempelkommandon visar hur du skapar en ny autentiseringsuppgift.

$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

Så här skapar du ett nytt PowerShell-certifikat med Windows PowerShell i Service Management Automation

Följande exempelkommandon visar hur du skapar ett nytt certifikat genom att importera en certifikatfil.

$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

Använda powershell-autentiseringsuppgifter i en runbook

Du hämtar en PowerShell-autentiseringsbok i en runbook med aktiviteten Get-AutomationPSCredential . Det här returnerar ett PSCredential-objekt som du kan använda i arbetsflödet.

  • Följande exempelkommandon visar hur du använder en PowerShell-autentiseringsuppgift i en runbook. I det här exemplet används autentiseringsuppgifterna med en InlineScript-aktivitet för att köra en uppsättning kommandon med alternativa autentiseringsuppgifter.

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

Hantera SMA-anslutningar

En automationsanslutning innehåller den information som behövs för att ansluta till en tjänst eller ett program från en Runbook. Den här informationen definieras i programmets modul och innehåller vanligen information som användarnamn, lösenord och datorn som ansluts till. Annan information kan också krävas, till exempel ett certifikat eller ett prenumerations-ID. Egenskaperna för en anslutning lagras på ett säkert sätt i Automation-databasen och kan nås i runbooken med aktiviteten Get-AutomationConnection .

Windows PowerShell-cmdletar

Du kan skapa och hantera autentiseringsuppgifter med Windows PowerShell-cmdlets i följande tabell.

Cmdletar Description
Get-SmaConnection Hämtar värden för varje fält i en viss anslutning.
Get-SmaConnectionField Hämtar fältdefinitioner för en viss anslutning.
Get-SmaConnectionType Hämtar tillgängliga anslutningstyper.
New-SmaConnection Skapar en ny anslutning.
Remove-SmaConnection Tar bort en befintlig anslutning.
Set-SmaConnectionFieldValue Ställer in värdet för ett visst fält för en befintlig anslutning.

Runbook-aktiviteter

Du kan komma åt anslutningar i en runbook med aktiviteterna i följande tabell.

Aktiviteter Description
Get-AutomationConnection Hämtar en anslutning för användning i en runbook.

Skapa en anslutning i hanteringsportalen

  1. Välj arbetsytan Automation .

  2. Klicka på Tillgångar längst upp i fönstret.

  3. Klicka på Lägg till inställninglängst ner i fönstret.

  4. Klicka på Lägg till anslutning.

  5. I listrutan Anslutningstyp väljer du en anslutningstyp.

  6. Ange ett namn för anslutningen i rutan Namn.

  7. Klicka på högerpilen.

  8. Ange värden för varje egenskap.

  9. Klicka på kryssmarkeringen för att spara anslutningen.

Skapa en anslutning med Windows PowerShell

Följande exempelkommandon skapar en ny anslutning för Virtual Machine Manager med namnet MyVMMConnection. Observera att vi använder en hash-tabell för att definiera egenskaperna för anslutningen. Det här beror på att olika typer av anslutningar kräver olika uppsättningar med egenskaper. En annan typs anslutning använder en annan uppsättning fältvärden.

Mer information om hash-tabeller finns i 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

Använda en anslutning i en runbook

Använd aktiviteten Get-AutomationConnection för att använda en anslutning i en runbook. Den här aktiviteten hämtar fältvärdena i anslutningen och returnerar dem som en hash-tabell som kan användas med lämpliga kommandon i runbooken.

Mer information om hash-tabeller finns i about_Hash_Tables.

Följande exempelkod visar hur du använder en anslutning för att ange datornamn och autentiseringsuppgifter för ett InlineScript-block som kör kommandon på en annan dator.

$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

Förenkla runbook-utveckling med globala variabler

Automationsvariabler är värden som är tillgängliga för alla Runbooks. Du kan skapa, ändra och hämta dem från hanteringsportalen, Windows PowerShell eller från en runbook. Automation-variabler är användbara i följande scenarier:

  • Dela ett värde mellan flera runbooks.

  • Dela ett värde mellan flera jobb från samma runbook.

  • Hantera ett värde från hanteringsportalen eller från Windows PowerShell-kommandoraden som används av runbooks.

Automation-variabler bevaras så att de fortsätter att vara tillgängliga även om runbooken slutar fungera. Det här tillåter även att ett värde ställs in av en runbook och sedan används av en annan eller används av samma runbook nästa gång den körs.

När en variabel skapas måste du välja en datatyp för den från listan nedan. Det här måste göras så att hanteringsportalen kan visa lämplig kontroll för variabelvärdet. En variabel kan endast tilldelas ett värde av rätt typ.

  • Sträng

  • Integer

  • Boolesk

  • Datumtid

När en variabel har skapats kan du ange att den lagras som krypterad. När en variabel krypteras lagras den på ett säkert sätt i SMA-databasen och dess värde kan inte hämtas från cmdleten Get-SmaVariable . Det enda sättet att hämta ett krypterat värde är från aktiviteten Get-AutomationVariable i en runbook. Du kan lagra flera värden av den angivna typen till en enda variabel genom att skapa en hash-tabell.

Windows PowerShell-cmdletar

Du kan skapa och hantera variabler med Windows PowerShell-cmdlets i följande tabell.

Cmdletar Description
Get-SmaVariable Hämtar värdet för en befintlig variabel.
Set-SmaVariable Skapar en ny variabel eller ställer in egenskaperna för en befintlig variabel.

Runbook-aktiviteter

Du kan komma åt variabler i en runbook med aktiviteterna i följande tabell.

Aktiviteter Description
Get-AutomationVariable Hämtar värdet för en befintlig variabel.
Set-AutomationVariable Ställer in värdet för en befintlig variabel.

Anteckning

Du bör undvika att använda variabler i parametern "Name Get-AutomationVariable eftersom det kan komplicera identifiering av beroenden mellan runbooks och Automation-variabler.

Skapa en ny variabel i hanteringsportalen

  1. Välj arbetsytan Automation .

  2. Klicka på Tillgångar längst upp i fönstret.

  3. Klicka på Lägg till inställninglängst ner i fönstret.

  4. Klicka på Lägg till variabel.

  5. I listrutan Typ väljer du en datatyp.

  6. Ange ett namn för variabeln i rutan Namn.

  7. Klicka på högerpilen.

  8. Ange ett värde för variabeln och ange om du vill kryptera den.

  9. Klicka på kryssmarkeringen för att spara variabeln.

Så här skapar du en ny variabel med Windows PowerShell

Cmdleten Set-SmaVariable skapar både en ny variabel och anger värdet för en befintlig variabel. Följande exempelkommandon visar hur du skapar en ny variabel av typen sträng.

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

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

Använda en variabel i en runbook

  • Följande exempelkod visar hur du ställer in och hämtar en variabel i en runbook. I det här exemplet förutsätts att variabler av typen heltal med namnet NumberOfIterations och NumberOfRunnings och en variabel av typen sträng med namnet SampleMessage redan har skapats.

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

Nästa steg

Läs mer om att skapa en integreringsmodul. Läs mer om redigering av Automation-runbooks.