![如何在 powershell 中创建邮箱并确定在哪个邮件存储中创建它?](https://linux22.com/image/639879/%E5%A6%82%E4%BD%95%E5%9C%A8%20powershell%20%E4%B8%AD%E5%88%9B%E5%BB%BA%E9%82%AE%E7%AE%B1%E5%B9%B6%E7%A1%AE%E5%AE%9A%E5%9C%A8%E5%93%AA%E4%B8%AA%E9%82%AE%E4%BB%B6%E5%AD%98%E5%82%A8%E4%B8%AD%E5%88%9B%E5%BB%BA%E5%AE%83%EF%BC%9F.png)
我需要编辑一个创建新用户的 powershell 脚本并添加一个为他们创建邮箱的部分,我遇到的问题是我需要它检查用户名的首字母以确定它是在“Store AM”还是“Store AZ”数据库中创建它。据我所知,我可以将 exchange 模块导入 powershell(我不会在 exchange shell 中)并使用 enable-mailbox cmdlet,只是在尝试所有操作时遇到问题。任何帮助都将不胜感激
编辑:我在 2008R2 机器上运行 Exchange 2010,但更有可能从 2012 R2 服务器运行脚本。
答案1
我使用这些命令来创建会话并导入模块,这样我就不必使用 EMS:
New-PSSession -Name Exchange -ConfigurationName Microsoft.Exchange -ConnectionUri http://exchangeserver.domain.com/powershell/ -AllowRedirection -Authentication Kerberos
Import-Module (Import-PSSession (Get-PSSession -Name Exchange)) -Global
导入模块后,您可以像这样启用邮箱(假设您已经拥有用户的详细信息):
$mailstore = ""
if($user.Surname[0] -le 'M')
{ $mailstore = "Store A-M" }
else
{ $mailstore = "Store N-Z" }
Enable-Mailbox -Identity $user.samAccountName -Database $mailstore
我没有添加您可能需要的所有命令参数Enable-Mailbox
,因为它们可能有很多,而且与问题无关。您可以看这里了解更多信息。