一:使用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">%d@contoso.com -fn %b -ln %a -pwd %e -d**abled no 作用:将上述文件中五个帐户添加到contoso.com域,名为newusers的ou中,且默认已启用用户。 其中:-samid为登录名 -upn为upn登录名 -fn为 名 -ln为 姓 -pwd为 密码 简单解释一下for语句 /f 表示从文件中读取信息 tokens表示每行使用的记号,对应于后面的变量具体的值 delims表示每个字段之间的分隔符 现用记事本程序制作为hellen、lycb、linda、cathy这四个用户在grfwg.local域下的sales组织单位中批量添加的csv格式文件。所添加的属性如上所示,各属性间用半角逗号分隔。这个csv文件如下所下: dn,objectclass,samaccountname,d**playname "cn=hellen,ou=sales,dc=grfw,dc=local",user,hellen,恩伦 "cn=linda,ou=sales,dc=grfw,dc=local",user,linda,林达 "cn=ruthy,ou=sales,dc=grfw,dc=local",user,ruthy,鲁西 以上内容在记事本程序中输入格式如图2-26所示。 图2-26 csvde命令导入文件的输入格式 在输入导入文件中,引号和逗号只能以英文方式输入,否则会出错。千万别在word文档中输入,再粘贴,这样就会出现许多格式问题,导致csvde命令不能识别。如发现内容输入没错,而在实际导入时总提示出错,则建议全部重新在记事本程序中以英文模式输入(指英文或字母字符)。另外,dn部分所包括的属性项一定要用英文引号括住(一定不能用中文引号),这样它就会把这些部分当做一个表项,否则也会出现识别错误。 csvde命令可以直接导入txt文本格式文件,但建议转换成csv格式,只需修改文件扩展名为csv即可。转换后的文件可用excel程序打开,打开后就是一个表格,如图2-27所示。表头就是属性项,下面每行代表一个用户账户的相应属性配置。csvde命令就是这过这样一个类似表格的模式来识别所添加的用户属性配置的。 文件输入和保存好后,在命令提示符下即可直接运行命令,导入用户配置文件,以批量添加用户账户。基本命令与ldifde类似,为: csvde –i –f c:\2.csv 导入成功后也有相应提示,如图2-28所示。此时也会在相应的“active directory用户和计算机”管理单元的相应组织单位中添加了以上这3个用户, 尽管csvde与ldifde类似,但csvde有明显的局限性:它只能使用逗号分隔的格式(.csv)导入和导出active directory数据。而且配置比较麻烦,经常出错,建议您使用前面介绍的ldifde实用工具进行“修改”操作或“删除”操作。此外,您尝试导入的项目的目录名必须位于.csv文件的第一列,否则导入操作将不起作用。 如果你所添加的用户账户名称在“active directory用户和计算机”管理单元相应域中已存在,则会出现错误,提示密码无法更新之类的提示,如图2-30所示。因为原用户已有密码了,现在批量添加的用户是无密码的,而csvde命令又没有更新密码的功能,所以出现这类错误。 出现这类错误多数情况下不是因为域组策略中设定了相应的密码策略造成的。笔者经过多次实验,也把密码策略选项进行过多次更改,强制应用,如图2-30所示的错误最终没有解除,而经过仔细比较后发现,原来确实其中有一个用户账户名称在原系统已存在,更正后即没有出现上述错误了。看来还是因为账户重名,密码不能更新的原因。 20210311