Я создавал почтовые ящики для некоторых из наших существующих пользователей, у которых нет собственного почтового ящика, поэтому я написал небольшой сценарий, чтобы упростить себе жизнь. Соответствующий отрывок ниже.
$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
Проблема с этим возникает в половине случаев, когда я получаю возврат при отправке почты - я предполагаю, что проблема в том, что поиск адреса происходит на другом сервере в нашем кластере обмена, на который почтовый ящик еще не реплицировался. Я пробовал указать как cas-сервер, так и транспортный узел для создания / рассылки, но, похоже, это не имеет значения. Я собирался просто добавить статический сон перед отправкой почты, но я надеялся, что есть более «умный» способ сделать это.
Возможно, пригодится командлет Get-Mailbox?
https://technet.microsoft.com/en-us/library/bb123685(v=exchg.160).aspx
Вам все равно придется добавить блокировку ожидания / повторной попытки, но, по крайней мере, вы будете уверены, что почта будет доставлена туда!