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