Invoke-AzVMRunCommand вывод журнала, обработка ошибок - PullRequest
0 голосов
/ 14 февраля 2020

как только мы запускаем команду «Invoke-AzVMRunCommand» для выполнения сценария PS на удаленной виртуальной машине, он всегда завершается успешно, даже если на самом деле происходит сбой. Я знаю, что удаленная виртуальная машина имеет там файл журнала:

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

Но как получить ошибка на локальном powershell, try-catch et c. не показывает это. Что такое правильная обработка ошибок с использованием «Invoke-AzVMRunCommand», в идеале получение результатов в формате .txt, что-то вроде:

| Out-File -Filepath xxx.txt

спасибо.

1 Ответ

0 голосов
/ 18 февраля 2020

В конце концов после длительного тестирования я получаю это решение, которое выдает ошибку при удаленном выполнении скрипта и записывает ее в файл .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
} 
...