CSVDE:Comma Separated Value Data Exchange
使用以逗号分隔值 (CSV) 格式存储数据的文件从 Active Directory 域服务 (AD DS) 导入和导出数据。您还可以支持基于 CSV 文件格式标准的批处理操作。
Csvde 是一个命令行工具,内置于 Windows Server 2008 的 %windir%/system32 文件夹中。如果您安装了 AD DS 或 Active Directory 轻型目录服务 (AD LDS) 服务器角色,则它可用。若要使用 csvde,必须从提升的命令提示符运行 csvde 命令。若要打开提升的命令提示符,请单击“开始”,右键单击“命令提示符”,然后单击“以管理员身份运行”。
注意,CSVDE无法导入密码,需要禁用后批量自行添加;也无法创建OU,需要先创建好OU再导入
导入例子:
文件内容:
因为对格式要求比较高,需要注意有没有多余的空格,写错的单词,大小写相对不敏感。
推荐使用EXCEL先创建表格,然后另保存为CSV格式,这样可以直接批量写入命令规则变化的用户名等,或者保存为TXT格式,方便导入虚拟机。
比如例题创建以下全局 AD 组与用户
- Sales (Sales001-100)、IT(IT01-05)、Finance(F01-10)、Management(Manage01-05)
userAccountControl(用户账户控制):
推荐使用514
如果错误仍然存在或不严重,请尝试 CSVDE -k。以下是它忽略的错误:“对象已存在”、“约束冲突”和“属性或值已存在”。
常见错误情况参考:CSVDE - Troubleshooting examples of import and export error messages (computerperformance.co.uk)
在第 2 行添加错误:
当您尝试CSVDE导入时,您得到“在第2行添加错误:”隐藏的含义是您要导入的每个对象都有问题。然而,如果您在第 15 行出现错误,细微差别是前 14 行被正确处理,因此第 15 行存在一些特别的问题。
打开导入文件时出错
您输入的名称是否正确?例如,您是否在正确的文件夹中?解决方案 尝试使用 DIR 命令。通过尝试其他文件名进行后续操作。
读取属性列表时出错
可能是电子表格中的空白列。检查第一行是否缺少 LDAP 值或没有 LDAP 值。例如,F 列 = sn,列 G = (空白),H 列 = 电话。
未连接到服务器(空)
您可能正在从XP机器尝试CSVDE。解决方案是添加 -s 服务器名称。
没有这样的属性“参数不正确”
参数不正确 – 多半是由 DN 或可能是 sAMAccountName 中的错误引起的。
没有这样的对象“找不到目录对象”。
检查活动目录用户和计算机。特别是,检查 DN 属性,确保 OU 存在。例如,CN=Jon Morris,OU=Cowbridge,dc=cp,dc=com。真的有cowbridge OU 吗?
“尝试将名称已在使用的目录中的对象添加到目录中。”
当我在CN = Users上犯了错误时,我得到了这个错误。因此,如果在默认容器中创建对象,则为 CN=USERS 而不是 OU=USERS。
“指定的用户已存在。”
检查Active Directory用户和计算机,如有必要,请尝试针对CN=Guy Thomas或sAMAccountName cn = guyt运行查找。发生的情况是您第二次运行脚本并且用户已经存在。例如,cn 对于 OU 必须是唯一的。
DN 必须是唯一的。此外,RDN 在 OU 中必须是唯一的。
无法更新密码。
服务器端错误为“无法更新密码”。为新密码提供的值不符合域的长度、复杂性或历史记录要求。解决方案将用户帐户控制更改为 = 514。
如果此更改不能解决问题,则启动 Active Directory 用户和计算机,并调整默认域组策略、密码策略并禁用密码复杂性并将最小密码长度设置为零。
“从服务器返回了引荐。”
"A REFERRAL WAS RETURNED FROM THE SERVER."
从服务器返回了引用。在此示例中,请检查 dc=xyz, dc=com 的拼写。当您运行 CSVDE -i 时,电子表格中 DN 的语法是错误的。查看 DN 列是否需要额外的 dc= 元素。例如,
CN=Jon Morris,OU=Newport,dc=cp
CN=Jon Morris,OU=Newport,dc=cp,dc=com
DN 语法无效。“对象名称语法错误。”
CSVDE 错误消息中有一个线索,观察短语“DN 语法”。当我运行 CSV 时,DN 列中有一个错误。我愚蠢地在开头加了一个额外的逗号。例如:
,cn=Jamie Dun,OU=Newport,DC=cp,dc=com。而不是普通的
cn=Jamie Dun,OU=Newport,DC=cp,dc=com。
“尝试修改对象以包含对其类不合法的属性。”
您尝试添加带有 CSV 导入的 LDAP 属性,但该属性本身不合适。例如,用户对象没有位置属性。(而打印机确实具有位置属性)。因此,如果您尝试添加不支持不存在的 LDAP 属性,则会收到错误消息。
在 2: 命名侵犯 行添加出错
服务器边的错误为 "目录服务找不到一个名称的属性类型。"
我还好奇,命名侵犯是什么,其实就是Naming violation,命名冲突,这个一般就是CN打成了DN
可选属性对照表: