Как обработать экранирование запроса получения учетных данных в Powershell? - PullRequest
1 голос
/ 11 мая 2019

Скажем, у нас есть get-credential в PS, и пользователь нажимает клавишу escape во время запроса учетных данных - в моем случае сценарий продолжается (но в дальнейшем потерпит неудачу).Как вы захватываете этот побег и действуете на него (например, write-host; exit и т. Д.)?

1 Ответ

3 голосов
/ 11 мая 2019

С помощью параметра -ErrorAction вы можете определить, что должен делать командлет в случае ошибки.В случае stop командлет выдает исключение, которое вы можете перехватить.

 Try {
     Get-Credential -ErrorAction Stop 
 }catch { 
     Write-Error "User canceled. Exception $($_.Exception)"
     return 
 }

Если вы не хотите перехватывать исключения, вы можете использовать автоматическую переменную Powershells $error - переменная:

  # User cancels the dialog
  $error.Clear()
  Get-Credential
  if ($error.Count -gt 0) {
     Write-Error "User canceled"
  }

Поскольку $error будет содержать ошибки заранее вызванных командлетов, вам необходимо очистить содержимое.У вас также есть возможность определить собственную переменную ошибки с помощью параметра -ErrorVariable.

Ниже ссылки содержат дополнительную информацию по этой теме:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...