csvde是windows域中用于ad对象批量导入导出的原生命令行工具,支持导出审计备份、按ou筛选及属性精简,但不支持设密码或修改现有对象;导入需严格遵循schema规范,用户默认禁用且无密码。
csvde 是 windows 域环境中原生可用的轻量级命令行工具,专用于 active directory(ad)对象的批量导入与导出,无需额外安装。它操作简单、依赖少,适合快速落库基础用户信息或做数据比对,但不支持设密码、加组、修改已有对象等进阶操作。
导出 AD 对象到 CSV 文件
导出可用于审计、备份或生成导入模板。常用命令如下:
- 导出整个域全部用户:
csvde -f allusers.csv - 只导出指定 OU 下的用户(如 OU=IT,DC=contoso,DC=com):
csvde -f itusers.csv -d "OU=IT,DC=contoso,DC=com" - 限制只导出用户类对象及关键属性(避免冗余字段):
csvde -f users_min.csv -d "OU=IT,DC=contoso,DC=com" -r "(&(objectCategory=person)(objectClass=user))" -l "DN,objectClass,sAMAccountName,displayName,givenName,sn,userPrincipalName,mail,department"
注意:导出结果默认包含所有系统属性,建议用 Excel 或文本编辑器删减列,保留后续导入所需字段;文件保存为 UTF-8(英文域)或 GBK(中文域),不要带 BOM 头。
准备可导入的 CSV 文件
导入前必须严格按 AD Schema 规范组织 CSV 内容,首行为 LDAP 属性名(非友好名称),常见必填字段包括:
-
dn:完整可分辨名称,例如
"CN=李四,OU=研发部,DC=contoso,DC=com"(含英文双引号) -
objectClass:固定填
user - sAMAccountName:登录名,20字符内、无空格/特殊符号、全域唯一
-
userPrincipalName:UPN 格式,如
lisi@contoso.com - givenName 和 sn:名与姓,建议显式填写以确保 displayName 准确
- displayName:推荐直接写入,避免 AD 自动拼接出错
- userAccountControl:514 表示禁用账户(推荐),512 表示启用(需满足密码策略,否则失败)
所有含空格、逗号或中文的字段值必须用英文双引号包裹;整行不能换行;字段顺序可调,但首行头必须与值一一对应。
Miller (mlr) 是一个命令行工具,用于查询、整形和重新格式化名称索引数据,如 CSV、TSV、JSON 和 JSON Lines。它将 awk、sed、cut、join 和 sort 的功能整合到一个专为结构化数据处理而构建的单一工具中。
执行批量导入
以管理员身份运行 CMD(不是 PowerShell),执行导入命令:
- 基础导入:
csvde -i -f users.csv - 指定目标域控制器(避免自动选 DC 异常):
csvde -i -f users.csv -s dc01.contoso.com - 使用域名占位符(CSV 中 dn 写为
"CN=张三,OU=HR,$domain"):csvde -i -f users.csv -c "$domain" "DC=contoso,DC=com"
导入成功后,用户默认处于禁用状态(若 userAccountControl=514),且密码为空。需另行启用并设置初始密码——CSVDE 本身无法完成这两步。
常见问题与应对
导入失败时,错误信息通常指向格式或环境问题:
- "The syntax of the name is incorrect":检查 dn 字段引号是否缺失、OU 路径是否存在、DC 拼写是否正确
- "The directory service has exhausted the pool of relative identifiers":RID 池耗尽,联系域管理员检查 FSMO 角色或重启 Netlogon 服务
- 中文乱码:确认 CSV 保存编码(中文域推荐 GBK),避免用记事本另存为 UTF-8-BOM
-
导入后用户不可见或属性为空:核对 CSV 首行属性名是否为 LDAP 显示名(如不能写“姓名”而要写
displayName)
CSVDE 不是万能工具,适合初始化账号或导出比对;如需设密码、加组、启用账户或修改现有对象,应改用 LDIFDE、PowerShell(New-ADUser)或 DSADD 系列命令。










