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
Välj arbetsytan Automation .
Längst upp i fönstret väljer du Tillgångar.
Längst ned i fönstret väljer du Lägg till inställning.
Välj Lägg till autentiseringsuppgift.
I listrutan Typ av autentiseringsuppgifter väljer du PowerShell-autentiseringsuppgifter.
Ange ett namn för autentiseringsuppgifterna i rutan Namn .
Välj högerpilen.
Ange värdena för varje egenskap.
Markera kryssmarkeringen för att spara autentiseringsuppgifterna.
Skapa ett certifikat i
Hanteringsportal
Välj arbetsytan Automation .
Längst upp i fönstret väljer du Tillgångar.
Längst ned i fönstret väljer du Lägg till inställning.
Välj Lägg till autentiseringsuppgift.
I listrutan Typ av autentiseringsuppgifter väljer du Certifikat.
Ange ett namn för certifikatet i rutan Namn .
Välj högerpilen.
Välj Bläddra efter fil och navigera till antingen en .cer- eller .pfx-fil.
Om du har valt en PFX-fil ger du filens lösenord.
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
Välj arbetsytan Automation .
Längst upp i fönstret väljer du Tillgångar.
Längst ned i fönstret väljer du Lägg till inställning.
Välj Lägg till anslutning.
I listrutan Anslutningstyp väljer du en anslutningstyp.
Ange ett namn för anslutningen i rutan Namn .
Välj högerpilen.
Ange ett värde för varje egenskap.
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
Välj arbetsytan Automation .
Längst upp i fönstret väljer du Tillgångar.
Längst ned i fönstret väljer du Lägg till inställning.
Välj Lägg till variabel.
I listrutan Typ väljer du en datatyp.
Ange ett namn för variabeln i rutan Namn .
Välj högerpilen.
Ange ett värde för variabeln och ange om den ska krypteras.
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
- Läs om att skapa en integreringsmodul.
- Läs mer om redigering av Automation-runbooks.