作为域管理员,有时我们需要批量地向AD域中添加用户帐户,这些用户帐户既有一些相同的属性,又有一些不同属性。如果在图形界面逐个添加、设置,那么需要的时间和人力会超出能够承受范围。一般来说,如果不超过10个,我们可利用AD用户帐户复制来实现。如果再多的话,就应该考虑使用使用命令行工具,实现批量导入导出对象。微软默认提供了两个批量导入导出工具,分别是CSVDE(CSV目录交换)和LDIFDE(LDAP数据互换格式目录交换)。
具体选择上述哪个工具取决于需要完成的任务。如果需要创建对象,那么既可以使用CSVDE,也可以使用LDIFDE,如果需要修改或删除对象,则必须使用LDIFDE。本文不涉及使用CSVDE导入对象。而是换另一种导入导出AD帐户思路:使用CSVDE工具导出AD帐户到CSV格式的文件中,再使用For语句读取该文件,使用DSADD命令进行批量添加。
具体步骤:
一:使用CSVDE导出帐户
使用 CSVDE 导出现有对象的列表相当简单。
最简单的用法是:
csvde –f ad.csv 将 Active Directory 对象导出到名为 ad.csv 的文件。–f 开关表示后面为输出文件的名称。
但是必须注意,上述的用法是很简单,但是导出来的结果可能存在太多你不希望要的记录和信息。
如果要实现更精确的导出记录,可以使用 -d 和 -r 以及 -l 参数。
其中:-d 用来指定特定的搜索位置和范围
-r 用来指定特定的搜索对象类型
-l 用来指定导出对象的具体属性
如:
csvde –f users.csv –d "ou=Users,dc=contoso,dc=com" –r "(&(objectcategory=person)(objectclass=user))" –l DN,objectClass,description
注意:如果使用CSVDE导出的帐户信息中存在中文,会存在乱码的可能,可以加-U参数来解决。
二:批量导入帐户
首先需要明确的概念是,要实现批量导入帐户,必须要存在一个已包括多个帐户信息的文件。没有文件,无法实现批量导入。
假设之前已经通过CSVDE工具导出过这样的一个文件Users.csv,且文件内容如下
姓 名 全名 登录名 密码
张,三, 张三, three.zhang,pass01
李,四, 李四, four.li, passo2
王,五, 王五, five.wang, pass03
刘,六, 刘六, six.liu, passo4
赵,七, 赵七, seven.zhao, pass05
有了上述格式的文件后,我们就可以使用For命令来读取文件中的每条信息并利用DSADD实现帐号添加。
具体语句如下:
C:\>for /f "tokens=1,2,3,4,5 delims=," %a in (uses.csv) do dsadd user "cn=%c,ou=
newusers,dc=contoso,dc=com" -samid %d -upn %d@contoso.com -fn
%b -ln %a -pwd %e -disabled no
作用:将上述文件中五个帐户添加到contoso.com域,名为newusers的OU中,且默认已启用用户。
其中:-samid为登录名
-upn为UPN登录名
-fn为 名
-ln为 姓
-pwd为 密码
简单解释一下for语句
/f 表示从文件中读取信息
tokens表示每行使用的记号,对应于后面的变量具体的值
具体选择上述哪个工具取决于需要完成的任务。如果需要创建对象,那么既可以使用CSVDE,也可以使用LDIFDE,如果需要修改或删除对象,则必须使用LDIFDE。本文不涉及使用CSVDE导入对象。而是换另一种导入导出AD帐户思路:使用CSVDE工具导出AD帐户到CSV格式的文件中,再使用For语句读取该文件,使用DSADD命令进行批量添加。
具体步骤:
一:使用CSVDE导出帐户
使用 CSVDE 导出现有对象的列表相当简单。
最简单的用法是:
csvde –f ad.csv 将 Active Directory 对象导出到名为 ad.csv 的文件。–f 开关表示后面为输出文件的名称。
但是必须注意,上述的用法是很简单,但是导出来的结果可能存在太多你不希望要的记录和信息。
如果要实现更精确的导出记录,可以使用 -d 和 -r 以及 -l 参数。
其中:-d 用来指定特定的搜索位置和范围
-r 用来指定特定的搜索对象类型
-l 用来指定导出对象的具体属性
如:
csvde –f users.csv –d "ou=Users,dc=contoso,dc=com" –r "(&(objectcategory=person)(objectclass=user))" –l DN,objectClass,description
注意:如果使用CSVDE导出的帐户信息中存在中文,会存在乱码的可能,可以加-U参数来解决。
二:批量导入帐户
首先需要明确的概念是,要实现批量导入帐户,必须要存在一个已包括多个帐户信息的文件。没有文件,无法实现批量导入。
假设之前已经通过CSVDE工具导出过这样的一个文件Users.csv,且文件内容如下
姓 名 全名 登录名 密码
张,三, 张三, three.zhang,pass01
李,四, 李四, four.li, passo2
王,五, 王五, five.wang, pass03
刘,六, 刘六, six.liu, passo4
赵,七, 赵七, seven.zhao, pass05
有了上述格式的文件后,我们就可以使用For命令来读取文件中的每条信息并利用DSADD实现帐号添加。
具体语句如下:
C:\>for /f "tokens=1,2,3,4,5 delims=," %a in (uses.csv) do dsadd user "cn=%c,ou=
newusers,dc=contoso,dc=com" -samid %d -upn %d@contoso.com -fn
%b -ln %a -pwd %e -disabled no
作用:将上述文件中五个帐户添加到contoso.com域,名为newusers的OU中,且默认已启用用户。
其中:-samid为登录名
-upn为UPN登录名
-fn为 名
-ln为 姓
-pwd为 密码
简单解释一下for语句
/f 表示从文件中读取信息
tokens表示每行使用的记号,对应于后面的变量具体的值
delims表示每个字段之间的分隔符
本文转自Devin 51CTO博客,原文链接:http://blog.51cto.com/devingeng/1355879