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
Välj arbetsytan Automation .
Klicka på Tillgångar längst upp i fönstret.
Klicka på Lägg till inställninglängst ner i fönstret.
Klicka på Lägg till autentiseringsuppgifter.
I listrutan Typ av autentiseringsuppgifter väljer du PowerShell-autentiseringsuppgifter.
Ange ett namn för autentiseringssuppgifter i rutan Namn.
Klicka på högerpilen.
Ange värden för varje egenskap.
Klicka på kryssmarkeringen för att spara autentiseringsuppgiften.
Skapa ett certifikat i
Hanteringsportal
Välj arbetsytan Automation .
Klicka på Tillgångar längst upp i fönstret.
Klicka på Lägg till inställninglängst ner i fönstret.
Klicka på Lägg till autentiseringsuppgifter.
I listrutan Typ av autentiseringsuppgifter väljer du Certifikat.
Skriv ett namn för certifikatet i rutan Namn.
Klicka på högerpilen.
Klicka på Bläddra efter fil och gå till antingen en .cer- eller .pfx-fil.
Om du har valt en PFX-fil ger du filens lösenord.
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
Välj arbetsytan Automation .
Klicka på Tillgångar längst upp i fönstret.
Klicka på Lägg till inställninglängst ner i fönstret.
Klicka på Lägg till anslutning.
I listrutan Anslutningstyp väljer du en anslutningstyp.
Ange ett namn för anslutningen i rutan Namn.
Klicka på högerpilen.
Ange värden för varje egenskap.
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
Välj arbetsytan Automation .
Klicka på Tillgångar längst upp i fönstret.
Klicka på Lägg till inställninglängst ner i fönstret.
Klicka på Lägg till variabel.
I listrutan Typ väljer du en datatyp.
Ange ett namn för variabeln i rutan Namn.
Klicka på högerpilen.
Ange ett värde för variabeln och ange om du vill kryptera den.
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.