Dela via


Runbook-utdata och meddelanden

Viktigt

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

De flesta Automation-runbooks har någon form av utdata, till exempel ett felmeddelande till användaren eller ett komplext objekt som ska användas av ett annat arbetsflöde. Windows PowerShell tillhandahåller flera strömmar för att skicka utdata från ett arbetsflöde. Service Management Automation fungerar med var och en av dessa strömmar på olika sätt och du bör följa metodtipsen för hur du använder var och en när du skapar en runbook.

Följande tabell innehåller en kort beskrivning av var och en av strömmarna och deras beteende i hanteringsportalen både när du kör en publicerad runbook och när du testar en runbook. Mer information om varje ström finns i följande avsnitt.

Stream Description Publicerad Test
Utdata Objekt som ska användas av andra Runbooks. Skrivs till jobbhistoriken. Visas i rutan Testutdata.
Varning Varningsmeddelande avsett för användaren. Skrivs till jobbhistoriken. Visas i rutan Testutdata.
Fel Felmeddelande avsett för användaren. Till skillnad från ett undantag fortsätter Runbooken när ett felmeddelande visas som standard. Skrivs till jobbhistoriken. Visas i rutan Testutdata.
Verbose Meddelanden som ger allmän information eller information om felsökning. Skrivs till jobbhistoriken endast om utförlig loggning är aktiverad för Runbooken. Visas endast i fönstret Testutdata om $VerbosePreference är inställt på Fortsätt i runbooken.
Förlopp Poster som genereras automatiskt före och efter varje aktivitet i Runbooken. Runbooken ska inte försöka skapa egna förloppsposter eftersom de är avsedda för en interaktiv användare. Skrivs till jobbhistoriken endast om förloppsloggning är aktiverad för Runbooken. Visas inte i rutan Testutdata.
Felsöka Meddelanden avsedda för en interaktiv användare. Bör inte användas i runbooks. Skrivs inte till jobbhistoriken. Skrivs inte till rutan Testutdata.

Utdataström

Utdataströmmen är avsedd för utdata från objekt som skapas av ett arbetsflöde när det körs korrekt. I Automation används den här strömmen främst för objekt som är avsedda att användas av överordnade runbooks som anropar den aktuella runbooken. När du anropar en runbook infogad från en överordnad runbook returneras data från utdataströmmen till den överordnade. Använd bara utdataströmmen för att kommunicera allmän information tillbaka till användaren om du vet att Runbooken aldrig kommer att anropas av en annan Runbook. Som bästa praxis bör du dock vanligtvis använda utförliga Stream för att förmedla allmän information till användaren.

Du kan skriva data till utdataströmmen med hjälp av Write-Output eller genom att placera objektet på en egen rad i runbooken.

#The following lines both write an object to the output stream.
Write-Object -InputObject $object
$object

Utdata från en funktion

När du skriver till utdataströmmen i en funktion som ingår i din Runbook skickas utdata tillbaka till Runbook. Om runbooken tilldelar utdata till en variabel skrivs den inte till utdataströmmen. Skrivning till andra dataströmmar inifrån funktionen skriver till motsvarande dataström för Runbook.

Studera följande exempel på Runbook.

Workflow Test-Runbook
{
   Write-Verbose "Verbose outside of function"
   Write-Output "Output outside of function"
   $functionOutput = Test-Function

   Function Test-Function
   {
      Write-Verbose "Verbose inside of function"
      Write-Output "Output inside of function"
   }
}

Utdataströmmen för Runbook-jobbet är:

Output outside of function

Den utförliga dataströmmen för Runbook-jobbet är:

Verbose outside of function
Verbose inside of function

Variabeln $functionOutput har värdet:

Output inside of function

Deklarera utdatatyp

Ett arbetsflöde kan ange datatypen för dess utdata med hjälp av attributet OutputType. Det här attributet har ingen effekt under körning, men ger en indikation till Runbook-författaren vid designtillfället vilka utdata som förväntas från Runbooken. Allteftersom verktygsuppsättningen för Runbooks fortsätter att utvecklas ökar vikten av att deklarera utdatatyper i vid designtillfället. Därför är det bästa praxis att inkludera den här deklarationen i alla runbooks som du skapar.

Följande exempel-Runbook matar ut ett strängobjekt och innehåller en förklaring av utdatatypen. Om din Runbook matar ut en matris av en viss typ bör du fortfarande ange typen, till skillnad från en matris av typen.

Workflow Test-Runbook
{
   [OutputType([string])]

   $output = "This is some string output."
   Write-Output $output
}

Meddelandeströmmar

Till skillnad från utdataströmmen är meddelandeströmmar avsedda att ge användaren information. Det finns flera meddelandeströmmar för olika typer av information, och var och en hanteras på olika sätt av Automation.

Välj den flik som krävs för att veta mer om dessa meddelandeströmmar:

Varningar och felströmmar är avsedda att logga problem som uppstår i en Runbook. De skrivs till jobbhistoriken när en runbook körs och ingår i fönstret Testutdata i hanteringsportalen när en runbook testas. Som standard fortsätter Runbook att köras efter en varning eller ett fel. Du kan ange att runbooken ska pausas vid en varning eller ett fel genom att ange en inställningsvariabel i runbooken innan du skapar meddelandet. Om du till exempel vill att en runbook ska pausas på grund av ett fel, som ett undantag, ställer du in $ErrorActionPreference på Stoppa.

Skapa en varning eller ett felmeddelande med cmdleten Write-Warning eller Write-Error . Aktiviteter kan också skriva till dessa strömmar.

#The following lines create a warning message and then an error message that will suspend the runbook.

$ErrorActionPreference = "Stop"
Write-Warning -Message "This is a warning message."
Write-Error -Message "This is an error message that will stop the runbook because of the preference variable."

Förloppsposter

Om du konfigurerar en runbook för att logga förloppsposter (på fliken Konfigurera i runbooken i hanteringsportalen) skrivs en post till jobbhistoriken före och efter att varje aktivitet har körts. I de flesta fall bör du behålla standardinställningen att inte logga förloppsposter för en Runbook, för att maximera prestanda. Aktivera bara det här alternativet om du behöver felsöka en runbook. När du testar en runbook visas inte förloppsmeddelanden även om runbooken har konfigurerats för att logga förloppsposter.

Cmdleten Write-Progress är inte giltig i en runbook eftersom den är avsedd att användas med en interaktiv användare.

Inställningsvariabler

Windows PowerShell använder inställningsvariabler för att avgöra hur du svarar på data som skickas till olika utdataströmmar. Du kan ange värden på dessa variabler i en Runbook och styra hur de ska svara på data som skickas till olika dataströmmar.

I följande tabell visas de preferensvariabler som kan användas i Runbooks med sina giltiga värden och standardvärden.

Anteckning

Den här tabellen innehåller bara de värden som är giltiga i en runbook. Ytterligare värden är giltiga för inställningsvariablerna när de används i Windows PowerShell utanför Service Management Automation.

Variabel Standardvärde Giltiga värden
WarningPreference Fortsätt Stoppa
Fortsätt
SilentlyContinue
ErrorActionPreference Fortsätt Stoppa
Fortsätt
SilentlyContinue
VerbosePreference SilentlyContinue Stoppa
Fortsätt
SilentlyContinue

I följande tabell visas beteendet för de preferensvariabelvärden som är giltiga i Runbooks.

Värde Beteende
Fortsätt Loggar meddelandet och fortsätter att köra Runbooken.
SilentlyContinue Fortsätter att köra Runbooken utan att logga meddelandet. Detta innebär att meddelandet ignoreras.
Stoppa Loggar meddelandet och gör uppehåll i körningen av Runbooken.

Hämta Runbook-utdata och meddelanden

Hanteringsportalen

Du kan visa information om ett Runbook-jobb i hanteringsportalen från fliken Jobb i en runbook. Jobbets sammanfattning visar indataparametrarna och utdata Stream utöver allmän information om jobbet och eventuella undantag om de inträffade. Historiken innehåller meddelanden från utdata Stream och varnings- och felströmmar utöver utförliga Stream- och förloppsposter om runbooken är konfigurerad för att logga utförliga och förloppsposter.

Windows PowerShell

I Windows PowerShell kan du hämta utdata och meddelanden från en runbook med hjälp av cmdleten Get-SmaJobOutput. Den här cmdleten kräver jobbets ID och har en parameter med namnet Stream där du anger vilken dataström som ska returneras. Du kan ange Alla för att returnera alla strömmar för jobbet.

I följande exempel startas en exempel-Runbook och väntar sedan på att den ska slutföras. När den har slutförts hämtas dess utdataström från jobbet.

$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
$job = Start-SmaRunbook -WebServiceEndpoint $webServer -Port $port -Name $runbookName

$doLoop = $true
While ($doLoop) {
   $job = Get-SmaJob -WebServiceEndpoint $webServer -Port $port -Id $job.Id
   $status = $job.Status
   $doLoop = (($status -ne "Completed") -and ($status -ne "Failed") -and ($status -ne "Suspended") -and ($status -ne "Stopped")
}

Get-SmaJobOutput -WebServiceEndpoint $webServer -Port $port -Id $job.Id -Stream Output

Nästa steg

Skapa Automation-runbooks.