当前位置:文档之家› 如何实现AD域账户导入导出

如何实现AD域账户导入导出

如何实现AD域账户导入导出如何实现AD域账户导入导出作为域管理员,有时我们需要批量地向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))" –lDN,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=co m" -samid %d-upn d@">%d@contoso .com-fn%b -ln %a -pwd %e-disabled no作用:将上述文件中五个帐户添加到域,名为newusers的OU 中,且默认已启用用户。

其中:-samid为登录名-upn为UPN登录名-fn为名-ln为姓-pwd为密码简单解释一下for语句/f 表示从文件中读取信息tokens表示每行使用的记号,对应于后面的变量具体的值delims表示每个字段之间的分隔符现用记事本程序制作为hellen、lycb、linda、cathy这四个用户在grfwg.local域下的sales组织单位中批量添加的csv格式文件。

所添加的属性如上所示,各属性间用半角逗号分隔。

这个csv文件如下所下:DN,objectClass,sAMAccountName,di splayName"CN=HELLEN,OU=SALES,DC=GRFW, DC=LOCAL",USER,HELLEN,恩伦"CN=LINDA,OU=SALES,DC=GRFW,D C=LOCAL",USER,LINDA,林达"CN=RUTHY,OU=SALES,DC=GRFW,D C=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个用户,如图2-29所示。

图2-27 转换成csv格式后的导入文件图2-28 成功运行csvde命令导入文件后的提示图2-29 新批量添加的3个用户尽管Csvde与Ldifde类似,但Csvde有明显的局限性:它只能使用逗号分隔的格式(.csv)导入和导出Active Directory数据。

而且配置比较麻烦,经常出错,建议您使用前面介绍的Ldifde实用工具进行“修改”操作或“删除”操作。

此外,您尝试导入的项目的目录名必须位于.csv文件的第一列,否则导入操作将不起作用。

如果你所添加的用户账户名称在“Active Directory用户和计算机”管理单元相应域中已存在,则会出现错误,提示密码无法更新之类的提示,如图2-30所示。

因为原用户已有密码了,现在批量添加的用户是无密码的,而csvde 命令又没有更新密码的功能,所以出现这类错误。

出现这类错误多数情况下不是因为域组策略中设定了相应的密码策略造成的。

笔者经过多次实验,也把密码策略选项进行过多次更改,强制应用,如图2-30所示的错误最终没有解除,而经过仔细比较后发现,原来确实其中有一个用户账户名称在原系统已存在,更正后即没有出现上述错误了。

看来还是因为账户重名,密码不能更新的原因。

图2-30 用户账户重名导致的错误Csvde使用以逗号分隔(CSV) 格式存储数据的文件从Active Directory 导入和导出数据。

还可以支持基于CSV 文件格式标准的批处理操作。

Csvde 是命令行工具,默认情况下,此工具安装在Windows Server 2003 上的%windir%/system32 文件夹中。

要在运行了Windows Server 2003 的计算机上运行 csvde,请打开命令提示符,使用合适的参数键入 csvde,然后按Enter。

如果您在运行Windows XP Professional 的计算机上安装Active Directory 应用程序模式(ADAM),则也可以在该计算机上运行 csvde。

Csvde 将位于%windir%/ADAM 文件夹中。

语法Csvde [-i] [-f FileName][-s ServerName] [-c String1 String2] [-v] [-j Path] [-t PortNumber][-d BaseDN] [-r LDAPFilter][-p Scope] [-l LDAPAttributeList] [-o LDAPAttributeList] [-g] [-m] [-n] [-k] [-a UserDistinguishedNamePassword] [-b UserName Domain Password]参数-i指定导入模式。

如果没有指定,默认模式为导出。

-f FileName识别导入或导出文件名。

-s ServerName指定域控制器执行导入或导出操作。

-c String1 String2将所有 String1 项替换为 String2。

从一个域将数据导入到另一个域以及导出域的可分辨名称(String1) 需要替换为导入域的可分辨名称(String2) 时普遍使用该操作。

-v设置verbose 模式。

-j Path设置日志文件位置。

默认路径为当前路径。

-tPortNumber指定轻型目录访问协议(LDAP) 端口号。

默认LDAP 端口为389。

全局编录端口为3268。

-dBaseDN为数据导出设置搜索库的可分辨名称。

-rLDAPFilter为数据导出创建LDAP 搜索筛选器。

-pScope设置搜索范围。

搜索范围选项为Base、OneLevel 或SubTree。

-lLDAPAttributeList设置返回至导出查询结果中的属性列表。

属性可由LDAP 按任何顺序返回,CSVDE 不尝试进行任何列排序。

如果省略该参数,则返回所有属性。

-oLDAPAttributeList设置要从导出查询结果中省略的属性列表。

从Active Directory 中导出对象然后将对象导入到另一符合LDAP 的目录中通常使用该方法。

如果另一个目录不支持属性,您可以使用该选项从结果集中忽略属性。

-g忽略分页搜索。

-m忽略仅适用于Active Directory 对象的属性,如ObjectGUID、objectSID、pwdLastSet 和samAccountType 属性。

-n忽略二进制值导出。

-k在导入操作期间忽略错误并继续处理。

以下是可忽略错误的完整列表:“对象已经存在”、“约束冲突”和“属性或值已经存在”。

-aUserDistinguishedName Password将该命令设置成使用提供的 UserDistinguishedName 和 Password 来运行。

默认情况下,将使用当前登录到网络的用户的凭据运行该命令。

此操作对用户名和密码进行了简单的LDAP 绑定。

相关主题