在虚拟机上运行命令失败并阻止其他“ Invoke-AzureRmVMRunCommand”

问题::当我在Azure Windows VM上运行带有'Invoke-AzureRmVMRunCommand'的Powershell Runbook时,由于所调用命令中的错误,我不得不停止Runbook(并且它处于空闲状态)永远),运行簿的所有新重复都将失败,并显示“正在执行运行命令扩展名。请在调用运行命令之前等待完成。”

这是在VM上运行PS脚本的runbook语句:

Invoke-AzureRmVMRunCommand -ResourceGroupName $objVM.ResourceGroupName -Name $objVM.Name -CommandId 'RunPowerShellScript' -ScriptPath $strRemoteScriptFileNameTmp -Parameter $hshParams

'$ strRemoteScriptFileNameTmp'中的PS代码中包含此语句,这会使运行手册空转,即。需要修复:

Invoke-Expression -Command "$strRunTimeEnv $strExecPath $strExecParaString"

然后-Command看起来像这样;它将ODBC驱动程序安装到VM,并在通过VM的PS CLI执行(RDP)后才能工作:

msiexec.exe /quiet /passive /qn /norestart /l* D:\msodbcsql_13.0_x64.log /package D:\UpdateODBC\Application\Live\msodbcsql_13.0_x64.msi IaccEPTMSODBCSQLLICENSETERMS=YES ADDLOCAL=ALL

问题:我知道该运行单(孤立)命令的超时时间为90分钟。但是,在虚拟机或自动化帐户上,此空闲位置在哪里?而且,我该如何杀死它?等待90分钟再尝试重新运行Runbook似乎是荒谬的。

(我不是完全按照Msft设定的方式进入生产性工作流程的。是的,我已经阅读了有关该主题的帖子,还阅读了Msft文档,这些文档确实需要英语进行校对演讲者,顺便说一句。)

megamanzero 回答:在虚拟机上运行命令失败并阻止其他“ Invoke-AzureRmVMRunCommand”

首先,为执行vm扩展设置了90分钟的超时时间,这是最长时间。您可以看到提示here。这并不意味着所有扩展将花费90分钟,而是意味着没有扩展执行将花费超过90分钟。这是一个极限。另外,您一次只能执行一个扩展,这是设计好的。

,

总结一下,我只想分享他们在答案中得到的MSDN:

“” ... Invoke-AzureRmVMRunCommand实际上正在使用REST命令将Powershell脚本发送到VM ...“

“通过此方法可以执行的操作受到限制:

  • 一次可以运行一个脚本。
  • 您无法取消正在运行的脚本。
  • 脚本可以运行的最长时间为90分钟。在那之后,它将超时。 “

请参阅: [https://docs.microsoft.com/en-us/azure/virtual-machines/windows/run-command#restrictions][1]

最好!

本文链接:https://www.f2er.com/2933116.html

大家都在问