2016-04-07 4 views
2

Ich bin ziemlich neu in Azure, aber ich hämmere meinen Kopf gegen etwas, das einfach scheint. Ich habe eine Menge Ressourcen gelesen, die darauf hindeuten, dass dies einfach sein sollte, aber ich kann einfach kein Runbook im neuen Portal (ARM) bekommen, um eine bestimmte VM zu starten. Es läuft und sagt "Completed", aber nichts passiert. HierAzure Runbook zum Starten/Stoppen einer VM sagt "Completed", aber nichts passiert

ist das Skript:

aktualisierte folgenden Jack Zeng Kommentar, die leider wenig verändert.

workflow StartDEVTC1 
{ 
$VerbosePreference = "Continue" 
$ErrorActionPreference = "Stop" 
$WarnPreference = "Continue" 

Write-Output "Getting credential..." 
$cred = Get-AutomationPSCredential -Name 'AutomationPowershellCred1' 
Write-Output "Adding account..." 
Add-AzureRmAccount -Credential $cred 

Write-Output "Getting VM..." 
$VM = Get-AzureRmVM -ResourceGroupName "myResourceGroup" -Name "DEVTC1" -Status 

$vmName = $VM.Name 
$vmRG = $VM.ResourceGroupName 
Write-Output "Checking state of $vmName from $vmRG..." 
$VMDetail = $VM | Select-Object -ExpandProperty StatusesText | convertfrom-json 
$vmPowerstate = $VMDetail[1].Code 

if($vmPowerstate -like "PowerState/deallocated") 
{ 
    Write-Output "$vmName powerstate is $vmPowerstate, starting VM..." 
    $res = $VM | Start-AzureRmVM 
    if (($res.StatusCode) -ne 'OK') 
    { 
     Write-Error "Could not start VM." 
    } 
} 
else 
{ 
    Write-Output "$vmName powerstate is $vmPowerstate, not starting VM." 
} 

Write-Output "END." 
} 

Wie Sie sehen können habe ich versucht, einige Protokollierung hinzugefügt, aber ich kann diese im Testing Fenster nicht sehen. Das Ausführen der wichtigsten Schritte in einer Powershell auf meinem PC funktioniert gut, also was ist hier los?

Der Berechtigungsnachweis wurde mithilfe der Details meines azure-Kontos neu definiert (ich bin ein Eigentümer des Kontos).

Es sollte selbstverständlich sein, aber ich habe einige viel einfachere Ansätze versucht Aufruf Start-AzureRmVm und nichts funktioniert.

Dank und Wertschätzung im Voraus!

+0

Bitte ändern Sie 'Write-Progress' in' Write-Output' und sehen Sie, welche Ausgabe Sie bekommen. Das Cmdlet "Write-Progress" ist in einem Runbook nicht gültig, da es für die Verwendung mit einem interaktiven Benutzer vorgesehen ist. Übrigens wird für 'Start-AzureRmVM' der' -Force' Parameter nicht mehr unterstützt. Ich habe Ihren Code ausprobiert, und es funktioniert perfekt an meinem Ende, ohne die '-Force' und ersetzen' Write-Progress' mit 'Write-Output'. –

+0

Danke Jack, aber auch mit deinen Vorschlägen bekomme ich keine Freude. Im Testbereich sehe ich weder die Ausgabe noch sehe ich irgendwelche Fehler. Ich kann nur "Completed" und eine unveränderte VM sehen. – GlacialSpoon

+0

Das ist komisch. Es funktioniert perfekt zu mir. Ich sehe hier kein Problem. –

Antwort

3

Ok ich habe es und die Antwort war frustrierend einfach.

Sie können keinen workflow-Block verwenden, es sei denn, Ihr Runbook wurde als Runbook für "PowerShell-Arbeitsablauf" erstellt. In meinem Fall war es einfach ein "PowerShell" Runbook, von dem ich vermutete, dass es den Workflow-Code nur ignorierte.

Das Erstellen des Runbooks als "PowerShell Workflow" Runbook ermöglichte die Protokollierung ausgegeben werden, so dass ich sehen konnte, was passiert war und die VM wie erwartet gestartet wurde (obwohl es lange gedauert hat).

Verwandte Themen