问题::当我在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文档,这些文档确实需要英语进行校对演讲者,顺便说一句。)
答案 0 :(得分:0)
首先,为执行vm扩展设置了90分钟的超时时间,这是最长时间。您可以看到提示here。这并不意味着所有扩展将花费90分钟,而是意味着没有扩展执行将花费超过90分钟。这是一个极限。另外,您一次只能执行一个扩展,这是设计好的。
答案 1 :(得分:0)
总结一下,我只想分享他们在答案中得到的MSDN:
“” ... Invoke-AzureRmVMRunCommand实际上正在使用REST命令将Powershell脚本发送到VM ...“
“通过此方法可以执行的操作受到限制:
请参阅: [https://docs.microsoft.com/en-us/azure/virtual-machines/windows/run-command#restrictions][1]
最好!