Powershell - записать ошибку cmd-let в переменную - PullRequest
1 голос
/ 27 марта 2020

Я пытаюсь перехватить ошибку из команды в переменную и выйти из сценария, если происходит ошибка

Add-DistributionGroupMember -Identity Office@example.com -Member `
tony.stark@example.com -ErrorAction stop -ErrorVariable MyError `
if ($MyError.Count -gt 0) {`
exit

} 

Но переменная MyError пуста, и сценарий продолжает выполняться, однако

, если укажите -ErrorAction SilentlyContinue, тогда скрипт просто продолжится, а переменная ошибки будет пустой

1 Ответ

1 голос
/ 30 марта 2020

Как уже упоминалось в комментарии, вы должны использовать вложенный try catch block для указанного командлета, например:

try
{
Add-DistributionGroupMember -Identity Office@example.com -Member `
tony.stark@example.com -ErrorAction stop -ErrorVariable MyError `
}
catch {
      if($MyError.Count -gt 0)
      {
        Write-Output $myerror

        #if you want to exit execution after this error, use exit command as blow
        exit
      }
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...