批量移动AD用户到指定OU
作为域管理员,在日常工作中使用ADUC(AD用户和计算机)工具在图形界面中进行账号管理操作可谓是家常便饭了。然而一个个增加、移动、删除用户,这样操作有时真的够烦,当管理大批量的账户时,重复操作浪费的时间会很多很对。记得在前两年写过几篇关于如何批量创建组织单位OU、AD域用户账户、邮件通讯组以及启用用户Exchange邮箱的文章,这些特别适用于在企业组织环境中白手起家新建域控、邮件等服务器的IT环境。
而对于企业组织中具有完善的IT基础架构的环境,有时也是需要进行大批量的AD用户操作的,比如AD中基于部门的组织单位OU,当赶上公司组织架构大变动,就需要随之调整,如果一个个手动操作,动辄几千个账户,对于域管理员来说,那将是个很苦逼的重复劳动。。。当然有人会提到整合HR系统和AD系统,这样就不需要重复操作,多次维护了。但是就国内来说,企业信息化建设到这种层度的公司屈指可数啊,并且这种HR系统价格不菲!
拿我所在的公司来说,每年都有组织架构的频繁变动,IT人员除了平时基于HR的信息进行调整外,每年年底还要基于HR信息进行一次彻底的大调整,以满足日常办公中Exchange邮件和Lync通讯簿中呈现出准确的信息。在我到公司之前据说每次调整都是好几个IT人员用花费几周的时间来共同完成。现在俺当然不能再采用这么土鳖的方法来调整了。。。怎么着咱也是MVP啊,O(∩_∩)O哈哈~
下面言归正传吧,来看看如何批量实现移动用户吧?
开始之前还是先要感谢以下两位博主,我这篇文章是在他们基础之上完成的
《一个脚本解决AD用户批量操作问题》
http://lqlaps169.blog.51cto.com/855319/384176
《批量修改AD账户与属性》
http://blog.csdn.net/xuhuojun/article/details/6795648
下面开始具体操作:
1、HR信息获取
前面我们提到,我们的AD架构调整是基于HR的组织架构及人事信息的,所以首先我们会从HR处拿到一张Excel表格,类似下图,包含姓名、公司、部门、邮箱等信息。
其中主要用到一下两项信息:
部门信息 用于我们AD中组织单位OU的划分
邮箱信息 用于和我们AD中的现有用户信息进行匹配
注:之所以不使用姓名是因为涉及到重名,一般来说AD中的姓名和HR的姓名不具有唯一性。
2、AD中用户信息导出
AD中现有用户信息的导出我借鉴的是《批量修改AD账户与属性》一文中的方式,再次感谢作者!http://blog.csdn.net/xuhuojun/article/details/6795648
这是一个vbs脚本,执行后会导出ad中用户的N多属性值,这里我们用不着这么多的属性值,所以对脚本稍加修改,只需导出显示名、邮箱、sAMAccount、DN(distinguishedName)等信息。
执行语句:
cscript C:\exportUserProfile.vbs
注:在64位的Windows Server 2008 R2环境下,需要以管理员权限打开cmd,并进入C:\Windows\SysWOW64\ 目录;命令执行计算机上还需要安装Excel 应用程序;
脚本执行完成后会输出结果到c:\temp\MyExport.xls
3、信息比对及匹配
接下来要做的就是将HR的Excel表格和我们导出的Excel表格(MyExport.xls)信息进行比对及匹配。
我们能够看到HR的Excel表格和导出的Excel表格具有相同的mail邮箱这一列,下面我们要使用Excel强大的VLOOKUP函数,用HR的Excel表格中mail信息去我们导出的Excel表格(MyExport.xls)中查询出对应的DN(distinguishedName)值,并填充到HR的Excel表格中。
DN(distinguishedName)值就是我们后面进行批量操作的关键
关于VLOOKUP函数可以参考下面链接,或者直接Google或者百度一下
http://office.microsoft.com/zh-cn/excel-help/vlookup-HP005209335.aspx
VLOOKUP比对匹配完成后的结果如下:
注:
“#N/A” 表示两张Excel表格中的数据没有相同的,一般是HR提供的邮箱错误或者和我们AD中的邮箱不一致导致的,这种一般我们可以根据其他信息手动查询出正确的DN值并补全。
局部放大截图:
完成后复制表格DN(distinguishedName)值列,并保存为txt文本文件。这里我们保存至D:\user.txt中。
到这里大家应该看明白了,查询到的DN(distinguishedName)值其实就是AD用户现在所在的组织单位OU信息。
4、执行批量移动OU
这里我借鉴的是《一个脚本解决AD用户批量操作问题》一文中的方式,再次感谢作者!
http://lqlaps169.blog.51cto.com/855319/384176
执行语句:
for /f %i in (d:\user.txt) do dsmove %i -newparent ou=xxx,ou=xxx,dc=xxx,dc=com >>d:\log.txt
for的作用就是从user.txt中获取目标信息
Dsmove –newparent 指定对象应移动到的新位置的 DN值
>>d:\log.txt 将命令执行结果输出到d:\log.txt,方便查询命令执行结果及排错
命令执行结果:
查看输出log文件:
ADUC中查看被移动的用户:
这样我们就完成了AD用户的批量移动OU操作。在这里提醒大家,这种操作毕竟涉及线上生产环境,所以尽量按照部门分批次移动操作,并且做好在非工作时间进行。
其实用户组织单位OU的调整只是第一步,接下来还需要进行部门通讯组及成员调整,不过这个完全可以由邮箱地址直接批量添加,简单方便很多。
另外调整OU后,AD用户属性(如:公司、部门、经理等等)的调整也可以按照文章《批量修改AD账户与属性》的方法来批量操作完成。这里就不在重复了
本文转自liang_simon51CTO博客,原文链接:http://blog.51cto.com/shubao ,如需转载请自行联系原作者
批量移动AD用户到指定OU相关推荐
- 如何批量修改AD用户的Email属性
一朋友咨询我如何批量修改AD用户的Email属性, 写了个批处理来实现. 大致分为两步: 1. 导出要设置Email属性的用户 2. 设置Email属性 先把脚本内容贴一下: 1 2 3 4 5 ...
- 使用powershell批量导入AD用户
建立文本文档另存为csv文件,注意编码格式,否则导入后是乱码 使用powellshell命令导入 Import-Csv -Path E:\users.csv | foreach { new-aduse ...
- 从csv文件批量创建AD用户,带源码。
前些日子同事需要这么一个工具,其实此类的工具也有一些,但是没有用着特别舒服的,所以我就写了一个,仅仅是读取csv文本,然后将相关的属性和值在制定的OU中创建出来,并且将失败的和失败原因加以记录. CS ...
- 批量查看域用户登录计算机信息
批量查看域用户登录计算机信息 在企业中经常有各种针对域帐号信息收集的需求,比如收集帐号在哪台计算机的登录时间:或者收集针对计算机硬件信息收集,对于硬件的收集推荐使用Bginfo来部署,结合AD组策略登 ...
- Powershell批量禁用指定用户及将禁用用户移动到指定OU
Powershell批量禁用指定用户及将禁用用户移动到指定OU 批量禁用指定用户及将禁用用户移动到指定OU 作为企业管理员,日常最基本的任务就是对每日的用户删除及创建:同样我们知道,微软系统自带Dsq ...
- AD下批量导入域用户
如果您的域环境比较大,那么设置用户可能会不方便,就"新建用户"都可能重复做上几十遍....是不是很.....呵呵... 下面介绍一个工具"csvde.exe", ...
- ad用户和计算机的使用方法,AD技巧之指定用户登录和指定计算机登陆
在域环境中我们往往默认情况下,域用户是可以在非域控机器上进行本地登录的,这里就涉及一个域安全问题 今天有人问我能否限制 某个用户只能登陆某台计算机?某台计算机只能由某个用户登录? 某个用户只能登陆某台 ...
- 使用CSVDE批量导入命令/出口AD用户
使用CSVDE批量导入命令/出口AD用户 CSVDE命令行工具可以与真实的用户信息CSV文件.批量导入/出口AD在. 导入的基本的语法命令是这种: csvde -i -f c:\filename.cs ...
- 如何在AD中批量创建域用户
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. http://myloverxhy.blog.51cto.com/1666449/39616 ...
最新文章
- 简单的文本框输入实时计数
- 推荐系统产品与算法概述 | 深度
- linux怎么远程windows桌面,Windows系统怎么远程登陆桌面Linux?
- yii2 关掉php notice,yii2关闭错误提示
- Tomcat启动超时问题Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds
- spring 属性占位符_Spring属性占位符配置器–一些不太明显的选项
- VSTO安装卸载方法
- 网络通信原理之TCP,UDP,QUIC
- t检验的p值对照表_R语言系列第四期:①R语言单样本双样本差异性检验
- 腾创秒会达视频会议系统软件 安卓
- Educational Codeforces Round 101 (Rated for Div. 2)
- Linux删除所有文件之后的恢复快照恢复
- java程序员培训班要多少钱,一招彻底弄懂!
- pdf太大了不能上传怎么办?
- 【Silvaco example】Temperature Ramping - Effect on Leakage
- Linux rpm 安装
- 对NVMe SSD热插拔时,我需要注意什么?
- drat中const和final
- [Python]链式赋值(Chained assignment)
- java使用dbcp2数据库连接池