Starta en Runbook
Gäller för: Windows Azure Pack for Windows Server
Du kan starta en Runbook i Service Management Automation med någon av följande tre metoder.
Hanteringsportal
PowerShell
De första två metoderna dokumenteras nedan. Att öppna en Runbook från en annan Runbook dokumenteras i Starta en Runbook från en annan Runbook.
Starta en Runbook med Windows Azure-pakethanteringsportalen
Välj Automation i hanteringsportalens vänstra ruta.
Välj fliken Runbooks.
Välj en Runbook och klicka sedan på Start.
Om din Runbook innehåller parametrar uppmanas du att ange värden med en textruta för varje parameter. Booleska och DateTime-parametrar har särskilda väljare i stället för den normala textrutan. Se Runbook-parametrar nedan för mer information om parametrar.
Välj antingen Visa jobb bredvid meddelandet Starta Runbook eller välj fliken Jobb för din Runbook för att visa jobbets status.
Så här startar du en Runbook med Windows PowerShell
Du kan använda Start-SmaRunbook för att starta en Runbook med Windows PowerShell. Följande exempelkod startar en Runbook med namnet Test-Runbook.
$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
Start-SmaRunbook –WebServiceEndpoint $webServer –Port $port –Name $runbookName
Start-SmaRunbook returnerar ett jobbobjekt som du kan använda för att spåra dess status när Runbook startats. Du kan sedan använda detta jobbobjekt med Get-SmaJob för att bestämma status för jobbet och Get-SmaJobOutput för att få dess utdata. Följande exempelkod startar en Runbook med namnet Test-Runbook, väntar tills den har slutförts och visar sedan dess utdata.
$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
Om Runbook kräver parametrar måste du ange dem som en hash-tabell där nyckeln för hash-tabellen matchar parameternamnet och värdet är parametervärdet. I följande exempel visas hur du startar en Runbook med två strängparametrar som heter FirstName och LastName, ett heltal som heter RepeatCount och en boolesk parameter som heter Show. Mer information om parametrar finns i Runbook-parametrar nedan.
$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
$params = @{"FirstName"="Joe";"LastName"="Smith";"RepeatCount"=2;"Show"=$true}
Start-SmaRunbook –WebServiceEndpoint $webServer –Port $port –Name $runbookName –Parameters $params
Runbook-parametrar
Parametrarna är värden som en Runbook kräver när den startas. T.ex. vill förmodligen en Runbook som skapar en ny virtuell dator ha en parameter där du anger datornamnet. Om parametern är obligatorisk måste du ange ett värde för den när du startar Runbook. Om parametern inte är obligatorisk behöver du inte ange något värde.
När du startar en Runbook med hanteringsportalen eller Windows PowerShell skickas instruktionen via Automation-webbtjänsten. Denna tjänst stöder inte parametrar med komplexa datatyper. Om du måste ange ett värde för en komplex parameter måste du anropa den infogad från en annan Runbook enligt beskrivningen i Starta en Runbook från en annan Runbook.
Automation-webbtjänsten tillhandahåller särskilda funktioner för parametrar med vissa datatyper som beskrivs i följande avsnitt.
Namngivna värden
Om parametern är datatypen [objekt], kan du använda följande JSON-format för att skicka en lista över namngivna värden: {"Name1":Value1, "Name2":Value2, "Name3":Value3}. Dessa värden måste vara enkla typer. Den Runbook får parametern som ett PSCustomObject med egenskaper som motsvarar varje namngivet värde.
Överväg följande test-Runbook som accepterar en parameter med namnet user.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][object]$user
)
if ($user.Show) {
foreach ($i in 1..$user.RepeatCount) {
$user.FirstName
$user.LastName
}
}
}
Följande text kan användas för user-parameter.
{"FirstName":"Joe","LastName":"Smith","RepeatCount":2,"Show":true}
Detta leder till följande utdata:
Joe
Smith
Joe
Smith
Matriser
Om parametern är en matris som t.ex. [array] eller [string[]], kan du använda följande JSON-format för att skicka en lista med värden: [Value1,Value2,Value3]. Dessa värden måste vara enkla typer.
Överväg följande test-Runbook som accepterar en parameter med namnet user.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][array]$user
)
if ($user[3]) {
foreach ($i in 1..$user[2]) {
$ user[0]
$ user[1]
}
}
}
Följande text kan användas för user-parameter.
["Joe","Smith",2,true]
Detta leder till följande utdata:
Joe
Smith
Joe
Smith
Inloggningsuppgifter
Om parametern är datatypen [PSCredential] kan du ange namnet på en Service Management Automation autentiseringsuppgifttillgång. Runbook hämtar autentiseringsuppgifttillgången med namnet som du anger.
Överväg följande test-Runbook som accepterar en parameter med namnet credential.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][PSCredential]$credential
)
$credential.UserName
}
Följande text kan användas för användarparametern förutsatt att det fanns en autentiseringsuppgifttillgång med namnet "MyCredential".
MyCredential
Om användarnamnet i autentiseringsuppgiften var jsmith, kommer detta att resultera i följande utdata.
jsmith
Se även
Service Management Automation
Runbook-åtgärder (gamla) [SMA]
Starta en Runbook från en annan Runbook