我一直在为一些没有自己邮箱的现有用户创建邮箱,因此我编写了一个小脚本来让自己的工作更轻松。相关摘录如下。
$exchange = New-PSSession -ConfigurationName microsoft.exchange -ConnectionUri http://exchangesvr/powershell
$newMailbox = Invoke-Command -Session $exchange -ScriptBlock{param ($mailbox,$alias)Enable-Mailbox -Identity $mailbox -Database "userdb" -Alias $alias} -ArgumentList $user, $first_last
$mailMessageParameters = @{
From = "helpdesk@company"
To = $email_address
Subject = "Welcome to your new Mailbox!"
SmtpServer = "exchangesvr"
Body = $emailBody
}
Send-MailMessage @mailMessageParameters -BodyAsHtml
不过,问题在于,有一半的时间我在发送邮件时都会收到退回邮件 - 我假设问题在于,在我们的 Exchange 群集中,对地址的查找发生在另一台服务器上,而邮箱尚未复制到该服务器上。我尝试为创建/发送邮件指定 cas 服务器和集线器传输,但似乎没有什么区别。我本来打算在发送邮件之前添加静态睡眠,但我希望有一种“更聪明”的方法来做到这一点。
答案1
也许 Get-Mailbox cmdlet 有用?
https://technet.microsoft.com/en-us/library/bb123685(v=exchg.160).aspx
您仍然需要添加等待/重试块,但至少您可以确信邮件会到达那里!