start/stop 虚拟机的 Azure runbook 说 "Completed" 但没有任何反应

Azure runbook to start/stop a vm says "Completed" but nothing happens

我是 Azure 的新手,但我正在努力解决看似简单的问题。我已经阅读了大量资源,这些资源表明这应该很容易,但我根本无法在新门户 (ARM) 中获得运行手册来启动特定的 VM。它运行并显示 "Completed" 但没有任何反应。

这是脚本:

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

如您所见,我已尝试添加一些日志记录,但在测试窗格中看不到这些。 运行 我 PC 上的 Powershell 中的关键步骤工作正常,这是怎么回事?

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

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

提前致谢和赞赏!

好的,我明白了,答案简单得令人沮丧。

您不能使用 workflow 块,除非您的 Runbook 是作为 "PowerShell Workflow" Runbook 创建的。在我的例子中,它只是一个 "PowerShell" 运行手册,我猜它只是忽略了代码的工作流块。

将 runbook 重新创建为 "PowerShell Workflow" runbook 允许输出日志记录,这样我就可以看到发生了什么,并且 VM 已按预期启动(尽管确实需要 很长一段时间)。