一次搞定批量启用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,毕竟企业的需求不同,不一定适合我的就适合您。

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

  1. 创建一个银行账户的继承层次,表示银行的所有客户的账户。每个客户都能在他们的银行账户存钱,取钱。但是账户可以分为更具体的两种类型,例如,依靠存款生息的存储账户SavingsAccount类,另一种就是信

    不要自卑,去提升实力 互联网行业谁技术牛谁是爹 如果文章可以带给你能量,那是最好的事!请相信自己 加油o~ 创建一个银行账户的继承层次,表示银行的所有客户的账户.每个客户都能在他们的银行账户存钱,取钱 ...

  2. 创建一个银行账户的继承层次,表示银行的所有客户的账户。每个客户都能在他们的银行账户存钱,取钱。但是账户可以分为更具体的两种类型,例如,依靠存款生息的存储账户SavingsAccount类

    关联与继承练习题 题目: 源码: Account(账户)类: CheckingAccount(信用卡)类: SavingsAccount(借记卡)类: Person(用户)类: Transaction ...

  3. AD在原理图中高亮网络的两种方法,altium designer 20

    AD在原理图中高亮某一网络,以方便观察.altium 20. 方法一 (单网络高亮.关闭后不保存) Alt+左键点击网络 此方法仅适合对打开的文件临时高亮,且不支持多网络同时高亮.仅适用于文件查看. ...

  4. ad被锁定的账户_【原创】解决AD账户被莫名其妙的锁定问题

    环境: Windows Server 2012 R2 问题: 最近总是有AD账号被锁定,为了查清问题所在,需要查看AD用户登录认证记录 教程: 第一步:开启AD域的"用户登录时间" ...

  5. 【原创】解决AD账户被莫名其妙的锁定问题

    环境: Windows Server 2012 R2 问题: 最近总是有AD账号被锁定,为了查清问题所在,需要查看AD用户登录认证记录 教程: 第一步:开启AD域的"用户登录时间" ...

  6. exchange 2013 批量启用AD域中已存账号的邮箱(转)

    第一种 1. 获取OU Beijing(包含子OU)下所有的user类型账户 打开 Exchange Management Shell get-user –OrganizationalUnit OU名 ...

  7. Exchange对AD的访问

    存储在 Active Directory 中的 Exchange 信息 Active Directory 数据库将信息存储在下面几节描述的三种类型的逻辑分区中: 架构分区 配置分区 域分区 架构分区 ...

  8. 再度剖析AD账户新旧密码同时可用的问题

        上周五写了一篇名为<深度剖析修改AD用户密码的数据同步机制>的文章,其中发现在修改了AD用户密码以后,5分钟之内,新旧密码同时可用的状况.     今天微软GTSC的工程师换了两拨 ...

  9. AD账户频繁被锁定-开启日志审核策略

    https://blog.51cto.com/ximeng211/1981175 (转) 问题描述:AD账户频繁被锁定,系统中无法查到相关锁定日志记录 处理过程:通过以下方法,验证是否开启了日志记录: ...

最新文章

  1. JavaScript执行环境及作用域(一)——执行环境栈和作用域链机制
  2. 工作135:引用当前组件下面的方法是混入
  3. 字节流写数据搭配异常处理
  4. 如何使用apiPOST进行模拟发送get、post、delete、put请求(支持文件上传)
  5. c java 引用类型_java中的引用类型
  6. 时序预测 | MATLAB实现DBN深度置信网络时间序列预测
  7. 三角形内切圆半径计算
  8. 两步解决WIN7 下IE经常未响应的假死现象
  9. 一边是旺旺丢不掉的童心 一边是放不下的功能饮料
  10. stalk词组_let.stalk是什么意思
  11. 微服务踩坑记之Zuul注册到Eureka
  12. IDEA 文件夹颜色对目录的影响分析
  13. Linux学习-49-列出进程调用或打开的文件信息(lsof命令)
  14. 已有一个已排好序的数组,要求输入一个数,将它插入数组中,保持数组依然有序。
  15. 差商matlab编程,Matlab数值计算差商与插值
  16. Android获取NFC标签和NFC十进制16进制ID
  17. React学习的小总结
  18. 计算机服务 无法保存,无法保存打印机设置0x000006d9?详细教您怎么办
  19. Ubuntu18 04安装QQ
  20. 【Markdown】markdown语法规定

热门文章

  1. My Twenty-Fourth - Page - 逆波兰表达式求值 - By Nicolas
  2. DNSPod十问梁凯:并购街电,共享充电宝行业的逆袭传奇
  3. 基于python的ATM(自动取款机)项目
  4. IL、ST、LD、FBD、SFC分别是什么语言?
  5. github issue 搜索_GitHub中Issue的使用
  6. 客户端IP与MAC地址绑定化解方法
  7. 研究型论文_CSE-IDS:使用成本敏感的深度学习和集成算法来处理基于网络的入侵检测系统中的类不平衡(英文论文)
  8. 数据结构与算法课程设计——C++迷宫游戏
  9. Gimbal Lock欧拉角死锁问题
  10. 微信小游戏开发学习记录