Exchange 启用AD账户已经存在或者不存在两种情况

一次搞定批量启用exchange 邮箱账户

找了几个比较省力的办法来进行批量账户启用。

另外也刨一个坑等待兄弟们去实现:如何与现有企业环境的流程进行合并,使得新用户账户可以自动被创建。比如如何与sharepoint集成,形成工作流。

通常批量启用邮箱账户的情景有如下2种:

1、ad中用户账户已存在,但是没有启动邮箱

2、ad中用户账户不存在,也没有启动邮箱

批量启用邮箱账户的命令介绍

get-user 遍历AD获取账户信息

enable-mailbox 启用邮箱

ConvertTo-SecureString $_.password -asPlaintext –force 直接在ps中创建邮箱的时候输入密码肯定需要这条命令

import-csv 导入csv数据

foreach-object PS中用到的循环

for 批处理的循环

 

下面用到的办法都是一次就完成启动邮箱的所有步骤。

——————

方法一 ad账户不存在,使用dsadd添加用户账号,然后调用EMS添加账户

需要3个文件

namelist.txt

user_mail.cmd

en-mailbox.ps1

namelist.txt 内容

 

分别是Lastname和firstname,通常我需要2个不同的设置,因为外国人的firstname在前面,需要调整一下。

user_mail.cmd内容

 

这个cmd脚本做了下列事情

1、从namelist中读取设置好的用户名

2、使用dsadd添加账户,使用for循环处理。

-添加用户到一个组内

-添加用户的到岗日期

3、使用导出功能,添加了PS1的脚本,

-添加用户邮箱到存储组中

-禁用用户邮箱的pop功能

4、调用EMS来执行导出的脚本

en-mailbox.ps1开始是空的,运行完user_mail.cmd后为下图

 
最终效果EMC中查看,全部完成 

执行cmd的结果

脚本如下:

set dc1=cashcat
set dc2=winos
set ou=users
set pwd=P@ssw0rd
set namelist=./namelist.txt
set ems=./en-mailbox.ps1
set /p date=Please input employee's join date:
set databasename="Mailbox Database"
 
FOR /F "eol=; tokens=1,2,* delims=, " %%i in (%namelist%) do dsadd user cn="%%i %%j",CN=%ou%,dc=%dc2%,dc=%dc1% -samid %%j%%i -upn %%j%%i@%Dc2%.%Dc1% -pwd %pwd% -ln %%i -fn %%j -display "%%i %%j" -desc %date% -pwdneverexpires no -memberof CN=FTEGroup,CN=Users,DC=winos,DC=cashcat
 
FOR /F "eol=; tokens=1,2,* delims=, " %%i in (%namelist%) do echo Enable-Mailbox -Identity "%%i %%j" -Alias "%%j%%i" -Database dc/%databasename% >>%ems%
FOR /F "eol=; tokens=1,2,* delims=, " %%i in (%namelist%) do echo set-casmailbox -Identity "%%j%%i" -popenabled $false >>%ems%
 
C:/WINDOWS/system32/windowspowershell/v1.0/powershell.exe -PSConsoleFile "C:/Program Files/Microsoft/Exchange Server/bin/exshell.psc1" -noexit -command "./en-mailbox.ps1"

脚本缺点:每次运行完或者开始运行前,需要查看en-mailbox.ps1中是否为空,以防止错误产生。

脚本优点:一次搞定建立过程省事又省心

——————-

方法二 使用模板批量建立账户

需要3个文件

namelist.csv

enable.cmd

enable.ps1

 

 

1. namelist.csv

2. enable.ps1

3.enable.cmd

结果如图

运行状态如下图

   

更多的信息,请参考:
如何使用模板创建收件人
http://technet.microsoft.com/zh-cn/library/bb125152.aspx

此方法缺点:无法为已存在用户创建邮箱,无法为用户添加组信息,还得手动去添加(如果有流程的话,应该是groupmanager自行去添加该组员,IT省事了)

脚本优点:一次搞定建立过程省事又省心

脚本如下:

$template = Get-Mailbox xun
import-csv "./namelist.csv" | ForEach-Object -process {$temp = ConvertTo-SecureString $_.password -asPlaintext -force;New-mailbox -Name $_.name -UserPrincipalName $_.upn -OrganizationalUnit $_.ou -Database "Mailbox Database" -Password $temp -TemplateInstance $template}

———————

方法三 获取某个ou下的账户然后添加邮箱

这个脚本适用于AD账户已经存在,而需要为账户添加邮箱权限的时候。严格来说算不上真正意义上的批量处理。

get-user –OrganizationalUnit Test | where-object{$_.RecipientType –eq “User”}      
get-user –OrganizationalUnit Test | where-object{$_.RecipientType –eq “User”} | Enable-Mailbox –Database “DC/Mailbox Database” | get-mailbox | select name,windowsemailaddress,database 
get-user –OrganizationalUnit Test | where-object{$_.RecipientType –eq “User” -and $_.department –eq “Sales”} | Enable-Mailbox –Database “DC/Mailbox Database” | get-mailbox | select name,windowsemailaddress,database 

 以上脚本分别是

1、获取ou test下所有的user类型账户

2、获取ou test下所有的user类型账户然后启动他们的邮箱

3、获取ou test下所有的user类型以及部门是sales的账户,然后启动他们的邮箱

 

就是这么多,其实以上三个方法都是非常简单的,也比较容易实现。

我通常仅使用方法1和方法3,毕竟企业的需求不同,不一定适合我的就适合您。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值