如何导入大批量的用户账户?是我们在2008R2安装搭建好之后需要考虑的一件事情。

方法就是把用户信息在Excel文档里面整理好,然后再用命令或者脚本导入到AD里面。

当然,方法是越简单越好,需要我们修改的越少越好。

我们首先从人事部门拿到一份员工的名册的excel表格

openldap添加Old openldap批量导入用户_openldap添加Old

对我们来说,重要的是姓名和工号,部门这3个。当然对于AD管理员来说用户账户的信息越详细越好

下面我们来编辑这些资料:

首先增加2列,登录名和密码

openldap添加Old openldap批量导入用户_openldap添加Old_02

然后把表格另存为C:\\aduserdata.csv (在DC上)

openldap添加Old openldap批量导入用户_另存为_03

把csv的文件关闭

在以管理员身份运行CMD

For do 的命令格式和参数

FOR命令循环执行dsadd命令,这个 for 程序体的语句引用 %a 来取得第一个符号,

引用 %b 来取得第二个符号从%a~%z,如果你的文
档里有5列分别是1~5的值,那变量%a就是1,依此往下推,命令行示范如下:

for /f "skip=1 eol=; tokens=1-9 delims=, " %a in (c:\ADuserdata.csv) 
 do dsadd user cn=%a,cn=users,dc=sample,dc=net 
 -upn %b@sample.net -samid %b -pwd %c -fn %e -ln %d -dept %f 
 -office %g -title %h -email %i -mustchpwd yes -disabled yes

参数含义: skip=1跳过第一行数据 eol=;注释行开始字符为";" tokens=1-9
每次提取1-9个变量 delims=, 分割符号为","

openldap添加Old openldap批量导入用户_另存为_04

结果报错,找不到文件。原因是CSV在打开的情况下,无法被命令读取,关闭再运行命令就OK

openldap添加Old openldap批量导入用户_CSV_05

打开ADUC就能看到

openldap添加Old openldap批量导入用户_openldap添加Old_06

我们打开任何一个用户,查看属性

openldap添加Old openldap批量导入用户_openldap添加Old_07

openldap添加Old openldap批量导入用户_CSV_08

openldap添加Old openldap批量导入用户_另存为_09

测试OK,全部创建成功

其实有工作经验的人就会发现,其实上面创建的是有问题的

没有划分OU,以后运行GPO怎么办?

一般情况下,我们导入用户前会事先创建好组织结构的OU

比如上海总部和上海子公司,如下图

建议ou的名字用英文比较好,中文有时候会有乱码,编辑的时候比较麻烦。

openldap添加Old openldap批量导入用户_用户账户_10

如果按上面的方法做必须把每个部门的员工做成一个CSV文件

下面我们先做总公司人事的账户,另存为C:\\SHHQHRUSER.CSV

用for do 的命令时添加相应的OU选择即可

openldap添加Old openldap批量导入用户_用户账户_11

openldap添加Old openldap批量导入用户_CSV_12

测试OK,

:)哪怕给我5K的用户也不愁了。

DSADD USER语法 
 dsadd user UserDN [-samid SAMName] [-upn UPN] [-fn FirstName] [-mi Initial] [-ln LastName][-display DisplayName] [-empid EmployeeID] [-pwd {Password | *}] [-desc Description]
[-memberof Group;...] [-office Office] [-tel PhoneNumber] [-email Email] [-hometel HomePhoneNumber]
[-pager PagerNumber] [-mobile CellPhoneNumber] [-fax FaxNumber] [-iptel IPPhoneNumber]
[-webpg WebPage] [-title Title] [-dept Department] [-company Company] [-mgr Manager]
[-hmdir HomeDirectory] [-hmdrv DriveLetter:] [-profile ProfilePath] [-loscr ScriptPath]
[-mustchpwd {yes | no}] [-canchpwd {yes | no}] [-reversiblepwd {yes | no}] [-pwdneverexpires {yes | no}]
[-acctexpires NumberOfDays] [-disabled {yes | no}] [{-s Server | -d Domain}] [-u UserName]
[-p {Password | *}] [-q] [{-uc | -uco | -uci}]


https://blog.51cto.com/ilync/1082167