切换到宽版
  • 11256阅读
  • 0回复

[分享]批量启用AD中已存在账户的Exchange 邮箱 [复制链接]

上一主题 下一主题
 
只看楼主 倒序阅读 0楼  发表于: 2012-10-17
AD中用户账户已存在,要为用户启用我们的Exchange邮箱,该怎么做呢?上千用户挨个启用?其实可通过下面两种方法来批量启用用户邮箱,省时省力,下面就看看怎么做。。。。其实网上有很多方法,这里只不过是进一步整理罢了。。。。
第一种
1、 获取OU Beijing(包含子OU)下所有的user类型账户
get-user –OrganizationalUnit Beijing | where-object{$_.RecipientType –eq “User”}

2、 获取OU Beijing(包含子OU)下所有的user类型账户然后启动他们的邮箱
get-user –OrganizationalUnit Beijing | where-object{$_.RecipientType –eq “User”} | Enable-Mailbox –Database “MailboxDatabase03” | get-mailbox | select name,windowsemailaddress,database
说明:“MailboxDatabase03” 是邮箱服务器上的数据库名称

注:红框中显示有乱码,原因是我们的AD账户显示名称为中文,后续处理乱码问题
3、 为某一个OU单独启用邮箱
获取OU Beijing的子OU BD下所有的user类型账户,然后启动他们的邮箱
get-user –OrganizationalUnit BD | where-object{$_.RecipientType –eq “User” } | Enable-Mailbox –Database “MailboxDatabase03” | get-mailbox | select name,windowsemailaddress,database

4、 对于OU中为中文的用户,启用邮箱后,别名显示为乱码。

解决方法如下:
将下列内容copy到一个记事本中,并把这个文件存为alias.ps1文件
$list=Get-Mailbox
ForEach ($item in $list)
{
$user=Get-User $item
$sam=$user.SAMAccountName
Set-Mailbox $item –Alias "$sam"
}
注:$list=Get-Mailbox代表邮箱变量。
$item代表每个邮箱的属性变量。
$sam=$user.SAMAccountName代表每个用户的登录名变量
把alias.ps1文件保存到Exchange 2010 C盘目录下。然后打开输入:EMS

完成后乱码问题解决如下图:
可以看到所有用户邮箱的别名都改成了登录名。

据说这种方法处理乱码问题不太可靠,当在企业生产环境中使用这种方法处理超过6000用户邮箱时,不管执行多少次这个脚本文件都不起作用,用户邮箱的别名还是显示乱码。由于我处理的用户少于6000,所以没法验证真实性。不过遇到此问题时推荐使用第二种方法。
第二种方法
命令示例:
function NewMailUser
{
Enable-Mailbox -Identity ($_.split(","))[0] -Alias ($_.split(","))[1]
}
gc mb.csv | foreach {NewMailUser}
其中“function”为整个脚本定义函数,“NewMailUser”为定义的函数
大括号中的为启用邮箱Powershell 命令,“($_.split(","))[0]”代表调用CSV 文本文件内编号为0 的
的列,分隔符为逗号
其中“Gc mb.csv”代表被调用的CSV 文件(需要完整路径)
管道符后的“foreach ”为批量执行函数“NewMailUser”直到CSV 文件行尾
mb.csv的内容格式如下:

其中第一列为登录名,第二列为别名,两列可相同也可不同。
将命令内容copy到一个记事本中,并把这个文件存为enable-mailbox.ps1文件。把enable-mailbox.ps1文件保存到Exchange 2010 C盘目录下。然后打开输入:EMS


可以看到使用这种方法来批量启用用户邮箱都显示正常,并且用户邮箱会自动分配到Exchange 2010 邮箱服务器的Mailbox里面。
分享到
快速回复
限60 字节
 
上一个 下一个