用于启动/停止虚拟机的Azure Runbook说"已完成"但没有任何反应

时间:2016-04-07 16:22:40

标签: powershell azure automation runbook

我对Azure很陌生,但我正在敲打一些看似简单的事情。我已经阅读了大量资源,这些资源表明这应该很简单,但我无法在新门户网站(ARM)中获取Runbook来启动特定的VM。它运行并声明"已完成"但没有任何反应。

这是脚本:

更新了Jack Zeng的评论,遗憾的是这些评论几乎没有改变。

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."
}

正如您所看到的,我已尝试添加一些日志记录,但我无法在“测试窗格”中看到这些内容。在我的电脑上运行Powershell中的关键步骤就可以正常运行了吗?

使用我的azure帐户的详细信息(我是帐户的所有者)新定义了凭证。

不言而喻,但是我尝试了一些更简单的方法来调用Start-AzureRmVm并且没有任何效果。

提前表示感谢和赞赏!

1 个答案:

答案 0 :(得分:5)

好的,我明白了,答案很简单。

除非您的Runbook是作为“PowerShell Workflow”Runbook创建的,否则不能使用private void chart1_Resize(object sender, EventArgs e) { sizeAnn(ra, new Size(24, 36)); } 块。就我而言,它只是一个“PowerShell”Runbook,我想这只是忽略了代码的工作流程。

将Runbook重新创建为“PowerShell工作流程”Runbook,可以输出日志记录,这样我就可以看到发生了什么,并且VM按预期启动了(尽管真的很长时间)。