0

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

“C:\Packages\Plugins\Microsoft.CPlat.Core.RunCommandWindows\1.1.3\Status”

问题:

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

| Out-File -Filepath xxx.txt

谢谢你。

4

1 回答 1

2

最终经过长时间的测试,我最终得到了这个解决方案,它从远程脚本执行中引发错误并将其记录在 .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
} 
于 2020-02-18T11:24:43.963 回答