3

我对 Azure 还很陌生,但我正在努力应对看似简单的事情。我已经阅读了大量资源,这些资源表明这应该很容易,但我根本无法在新门户 (ARM) 中获得运行手册来启动特定的 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."
}

如您所见,我尝试添加一些日志记录,但在测试窗格中看不到这些。在我的 PC 上的 Powershell 中运行关键步骤就可以了,那么这里发生了什么?

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

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

提前感谢和赞赏!

4

1 回答 1

7

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

workflow除非您的 Runbook 是作为“PowerShell 工作流”Runbook 创建的,否则您不能使用块。就我而言,它只是一个“PowerShell”运行手册,我猜它只是忽略了工作流代码块。

将运行手册重新创建为“PowerShell 工作流程”运行手册允许输出日志记录,因此我可以看到正在发生的事情,并且虚拟机按预期启动(尽管花了长时间)。

于 2016-04-08T10:25:26.770 回答