Dela via


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.

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

  1. Välj Automation i hanteringsportalens vänstra ruta.

  2. Välj fliken Runbooks.

  3. Välj en Runbook och klicka sedan på Start.

  4. 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.

  5. 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