如何在Powershell中处理转义get-credential请求?

时间:2019-05-11 05:15:04

标签: powershell

假设我们在PS中有get-credential,并且用户在凭据提示期间命中了转义-在我的情况下,脚本继续进行(但会失败)。您如何捕获该逃逸并对其采取行动(例如write-host; exit等)?

1 个答案:

答案 0 :(得分:3)

通过-ErrorAction参数,您可以定义在发生错误时cmdlet应该执行的操作。对于stop,该cmdlet会引发一个异常,您可以捕获该异常。

 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将包含先前称为cmdlet的错误,因此您必须清除内容。您还可以选择通过-ErrorVariable参数来定义自己的错误变量。

下面的链接包含有关此主题的更多信息: