Azure runbook自动化-调用AzureRmVMRunCommand错误

Azure runbook自动化-调用AzureRmVMRunCommand错误,azure,automation,azure-automation,Azure,Automation,Azure Automation,我有一本按计划运行的Azure runbook。它位于powershell中,此runbook启动VM并在启动的VM上执行脚本。我是如何做到这一点的 1) 将要在VM上运行的脚本存储在存储帐户中 2) 运行powershell runbook 3) Powershell runbook使用wget命令从步骤1复制脚本 4) 在Azure自动化powershell命令中调用AzureRmVMRunCommand,如下所示 wget "https://utilitystorageaccnt.blob

我有一本按计划运行的Azure runbook。它位于powershell中,此runbook启动VM并在启动的VM上执行脚本。我是如何做到这一点的

1) 将要在VM上运行的脚本存储在存储帐户中 2) 运行powershell runbook 3) Powershell runbook使用wget命令从步骤1复制脚本 4) 在Azure自动化powershell命令中调用AzureRmVMRunCommand,如下所示

wget "https://utilitystorageaccnt.blob.core.windows.net/utilitycontainer/token" -outfile ((Get-Location).path + "\Reporting Copy.ps1") -UseBasicParsing

Invoke-AzureRmVMRunCommand -ResourceGroupName $ResourceGroupName -VMName $VmName -CommandId 'RunPowerShellScript' -ScriptPath ((Get-Location).path + '\Reporting Copy.ps1') -ErrorVariable result
请注意,以上两个命令不在powershell runbook脚本中,而不是在VM上运行的实际脚本中

面临两个问题

1) 当这个脚本Reporting Copy.ps1在VM上独立运行时,它工作正常,没有问题。当它使用runbook运行时,我在目标vm的日志文件中得到这些错误

New-AzStorageContext:术语“New-AzStorageContext”不能识别为cmdlet、函数或脚本的名称 文件或可操作程序。请检查名称的拼写,或者如果包含路径,请验证路径是否正确 然后再试一次。”

2) 即使发生此错误,它也不会终止并在循环中运行。此脚本执行复制操作,并保持循环,直到所有复制完成。我可以处理终止代码,但我想知道如何强制终止runbook。我试图停止虚拟机甚至一个小时,它恢复了复制操作。Azure中的runbook状态显示为已完成。资源管理器中显示了两个python进程,终止它们也不起作用

任何帮助或暗示都将不胜感激


谢谢。

看起来您没有将Az PowerShell模块导入我们的自动化帐户

请按照本教程操作:


尝试只使用Az模块而不使用AzureRM

问题是因为我没有为所有这样的用户安装Az模块

安装模块-名称Az-AllowClobber-范围AllUsers

相反,我使用了

安装模块-名称Az-AllowClobber-范围CurrentUser


由于自动化在不同的用户上运行,因此出现了问题。感谢您的帮助。

这些Az命令不在实际的powershell runbook中,而是在powershell runbook复制的脚本中。此外,此脚本以独立方式在VM上运行时运行良好。@Vikram您收到一个错误:
New-AzStorageContext:无法识别术语“New-AzStorageContext”
,因此,您需要在某个地方安装Az模块以避免此错误我已在虚拟机上安装了Az模块,并将其包含在powershell gallery中,但仍然会遇到相同的错误。在这个链接中,我看到invoke-azurermvmrun命令作为本地系统帐户在VM中执行。在这种情况下,我是否也需要为该帐户安装powershell模块?这就是导致这个问题的原因吗?