Azure Runbook 自动化 - Invoke-AzureRmVMRunCommand 错误

Azure runbook automation - Invoke-AzureRmVMRunCommand error

我有一本 Azure 运行 的书,运行 如期而至。它在 powershell 中,这本 运行book 启动一个 VM 并在启动的 VM 上执行一个脚本。我是如何做到这一点的

1) 将要 运行 的脚本存储在存储帐户中的 VM 上 2) 运行 powershell 运行 书 3) Powershell 运行book 使用 wget 命令复制步骤 1 中的脚本 4) Invoke-AzureRmVM运行Azure自动化powershell命令中的命令如下图

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 运行book 脚本中,而不是虚拟机上 运行 的实际脚本。

面临两个问题

1) 当此脚本 Reporting Copy.ps1 运行 在 VM 上独立运行时,它可以正常工作并且没有任何问题。当它是 运行 使用 运行 书时,我在目标虚拟机上的日志文件中得到这些错误。

"New-AzStorageContext : 术语 'New-AzStorageContext' 未被识别为 cmdlet、函数、脚本的名称 文件,或可运行的程序。检查名称的拼写,或者如果包含路径,请验证路径是否正确 然后重试。"

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

如有任何帮助或提示,我们将不胜感激。

谢谢。

您似乎没有将 Az PowerShell 模块导入我们的自动化帐户。

请按照本教程进行操作:Az module support in Azure Automation

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

问题是因为我没有像这样为所有用户安装AZ模块。

安装模块 -Name Az -AllowClobber -Scope AllUsers

相反,我使用了

安装模块 -Name Az -AllowClobber -Scope CurrentUser

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