Invoke-AzVMRunCommand 日志输出,错误处理

Invoke-AzVMRunCommand log output, error handling

一旦我们 运行 命令“Invoke-AzVMRunCommand”在远程 VM 上执行 PS 脚本,它总是成功,即使实际上失败了。我知道远程 VM 那里有日志文件:

"C:\Packages\Plugins\Microsoft.CPlat.Core.RunCommandWindows.1.3\Status"

问题:

但是如何在本地 powershell、try-catch 等上检索错误并没有显示出来。 什么是使用“Invoke-AzVMRunCommand”的正确错误处理,理想情况下在 .txt 中获得结果,类似于:

| Out-File -Filepath xxx.txt

谢谢。

最终经过长时间的测试,我得到了这个解决方案,它从远程脚本执行中抛出错误并将其记录在 .txt 文件中:

$result = Invoke-AzVMRunCommand -ErrorAction Stop -ResourceGroupName "MyRg" -Name "MyVM" -CommandId 'RunPowerShellScript' -ScriptPath MyScript.ps1
Remove-Item -path script.ps1 

if ($result.value.Message -like '*error*') 
{  

    Write-Output "Failed. An error occurred: `n $($result.value.Message)" | Out-File -Filepath C:\OutputLog.txt -Append
    throw $($result.value.Message)        
}
else
{
    Write-Output "Success" | Out-File -Filepath C:\OutputLog.txt -Append
}