我正在编写一个脚本,该脚本将使用类似于以下内容的方式针对我的邮件服务器远程运行 :
$credentials = Get-Credential
$session = New-PSSession `
-ConnectionUri http://mailserver/PowerShell/ `
-Authentication Kerberos `
-ConfigurationName Microsoft.Exchange `
-Credential $credentials
$module = Import-PSSession $session
我将通过读取主机,参数或管道从用户那里收到收件人的姓名,因此,如果收件人无效且get-recipient不成功,我希望我的脚本可以纾困。 -ErrorAction似乎是一个合理的选择。
get-recipient "doesnotexist" -ErrorAction SilentlyContinue; write-host "will output";
get-recipient "doesnotexist" -ErrorAction Stop; write-host "will output"
get-recipient "doesnotexist" -ErrorAction Inquire; write-host "will not output if halt selected, otherwise displayed"
根据about_CommonParameters获得帮助,-EA应该修改非终止错误的行为。这里有一个非终止错误,我想通过...终止来处理。我知道EA之所以起作用,是因为我将其设置为“查询”可以(交互地)获得期望的结果。我想要的是在没有交互的情况下终止,因此我可以尝试/捕获它。
最佳答案
为此使用-ErrorAction Stop
。
get-recipient "doesnotexist" -ErrorAction Stop; write-host "will not output"