首页 > 解决方案 > 匹配来自 ExchangeOnline 的用户输入

问题描述

在 PowerShell Exchange-online 中,您可以从 Get-Mailbox 获取用户的邮箱

如果我有以下用户输入。

$email = Read-Host -Prompt 'what email is it?'

我如何检查用户输入并查看它是否与现有邮箱匹配,如果存在则说“邮箱存在”,否则脚本应该停止运行。怎么可能做到这一点?

标签: powershelloffice365exchange-server

解决方案


有很多方法可以解决这个问题。一种将邮箱搜索结果存储到变量中的方法。然后简单地检查变量是否实际存储了任何东西。

$email = Read-Host -Prompt 'what email is it?'
$mailbox = Get-Mailbox $email -ErrorAction SilentlyContinue
if ($mailbox) {
    "Mailbox exists"
} else {
    Exit
}

-ErrorAction SilentlyContinue用于抑制未找到邮箱时将返回的错误。


一种更复杂的方法是捕获异常并采取相应的措施。

$email = Read-Host -Prompt 'what email is it?'
try { 
    $mailbox = Get-Mailbox $email -ErrorAction Stop
    "Mailbox Exists"
} catch [System.Management.Automation.RemoteException] {
    Exit
}

推荐阅读