匹配来自ExchangeOnline的用户输入

问题描述

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

如果我随后输入了以下用户信息。

<!DOCTYPE html>
<html lang = "en">
<head>
  <Meta charset ="utf-8">
  <Meta name= "viewport" content = "width=device-width,initial-scale =1">
  <title>Solution Assignment Module-3!</title>
  <link rel="stylesheet" href="css/bootstrap.min.css">
  <link rel="stylesheet" href="css/styles.css">
</head>
<body>

 <header>
  <nav id="header-nav" class="navbar navbar-default">
    <div class="container">

    </div>
  </nav>
 </header>





<script src="js/jquery-3.5.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/script.js"></script>
</body>
</html>

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

解决方法

有多种方法可以解决此问题。一种将邮箱搜索结果存储到变量中的方式。然后只需检查该变量是否实际存储了任何东西。

$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
}