Dela via


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

Viktigt

Den här versionen av 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 en autentiseringsuppgift lagras säkert i Automation-databasen och kan nås i runbooken med 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-autentiseringsuppgift.
Remove-SmaCertificate Tar bort ett Automation-certifikat.
Remove-SmaCredential Tar bort en Automation PowerShell-autentiseringsuppgift.
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 en ny Automation PowerShell-autentiseringsuppgift eller anger egenskaperna för en befintlig autentiseringsuppgift.

PowerShell för att arbeta med autentiseringsuppgifter

Du kan använda aktiviteterna i följande tabell för att komma åt autentiseringsuppgifterna 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 "Namnparametern för Get-AutomationPSCredential och Get-AutomationCertificate eftersom detta kan komplicera identifieringen av beroenden mellan runbooks och Automation-variabler.

Skapa en PowerShell-autentiseringsuppgift i hanteringsportalen

  1. Välj arbetsytan Automation .

  2. Längst upp i fönstret väljer du Tillgångar.

  3. Längst ned i fönstret väljer du Lägg till inställning.

  4. Välj Lägg till autentiseringsuppgift.

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

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

  7. Välj högerpilen.

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

  9. Markera kryssmarkeringen för att spara autentiseringsuppgifterna.

Skapa ett certifikat i

Hanteringsportal

  1. Välj arbetsytan Automation .

  2. Längst upp i fönstret väljer du Tillgångar.

  3. Längst ned i fönstret väljer du Lägg till inställning.

  4. Välj Lägg till autentiseringsuppgift.

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

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

  7. Välj högerpilen.

  8. Välj Bläddra efter fil och navigera till antingen en .cer- eller .pfx-fil.

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

  10. Markera kryssrutan för att spara certifikatet.

Skapa en autentiseringsuppgift 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 en PowerShell-autentiseringsuppgift i en runbook

Du hämtar en PowerShell-autentiseringsuppgift 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 cmdletar 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. Längst upp i fönstret väljer du Tillgångar.

  3. Längst ned i fönstret väljer du Lägg till inställning.

  4. Välj Lägg till anslutning.

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

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

  7. Välj högerpilen.

  8. Ange ett värde för varje egenskap.

  9. Markera kryssrutan 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.

Anteckning

Vi använder en hash-tabell för att definiera anslutningens egenskaper. 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 värdena för de olika fälten i anslutningen och returnerar dem som en hash-tabell, som sedan 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 datornamnet och autentiseringsuppgifterna 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

Automation-variabler ä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 inifrå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 sparas så att de fortsätter att vara tillgängliga även om runbooken misslyckas. Detta gör också att ett värde kan anges av en runbook som sedan används av en annan eller som 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. Detta gör 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 säkert 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 definierade typen i en enda variabel genom att skapa en hash-tabell.

Windows PowerShell-cmdletar

Du kan skapa och hantera variabler med Windows PowerShell-cmdletar 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 namnparametern för Get-AutomationVariable eftersom det kan komplicera identifieringen av beroenden mellan runbooks och Automation-variabler.

Skapa en ny variabel i hanteringsportalen

  1. Välj arbetsytan Automation .

  2. Längst upp i fönstret väljer du Tillgångar.

  3. Längst ned i fönstret väljer du Lägg till inställning.

  4. Välj Lägg till variabel.

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

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

  7. Välj högerpilen.

  8. Ange ett värde för variabeln och ange om den ska krypteras.

  9. Markera kryssmarkeringen för att spara den nya variabeln.

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

Både cmdleten Set-SmaVariable skapar 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 antas det att variabler av typen heltal med namnet NumberOfIterations och NumberOfRunnings och en variabel av typen string 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