CSVDE是Windows Server内置的CSV格式AD对象导入导出工具,仅支持创建和导出,不支持修改、删除、启用禁用账户或设置密码;字段顺序严格、不校验密码策略、导入后账户默认禁用。
CSVDE 是什么,它能做什么不能做什么
csvde(comma-separated values data exchange)是 windows server 自带的命令行工具,专用于通过 csv 文件批量导入/导出 active directory 对象。它只支持创建和导出,不支持修改、删除或启用禁用账户——这点必须明确。如果你看到“csvde 修改用户邮箱”这类需求,实际做不到,得换 powershell 或 ldifde。
- 只能导入新对象(
csvde -i),已有sAMAccountName会报错Entry already exists - 不校验密码强度策略,但若域策略强制复杂密码,导入时设的密码仍可能被拒绝
- 不触发密码过期、账户锁定等状态变更逻辑,导入后账户默认处于“已禁用”状态
准备 CSV 文件:字段顺序、必需字段与常见填错点
CSVDE 对字段顺序极其敏感,必须严格按 AD Schema 属性名排列,且首行必须是属性名(不是中文描述)。最简可用的用户导入 CSV 至少包含以下 5 个字段:
-
objectClass:固定填user -
sAMAccountName:登录名,≤20 字符,不能含空格或特殊符号(如@、/) -
userPrincipalName:格式为username@domain.com,域名必须真实存在且可解析 -
displayName:建议填写,否则 AD 用户属性里显示为空白 -
cn:通常与displayName一致,AD 要求非空
容易踩的坑:
- 把
givenName或sn当成必填项(其实不是),漏掉cn会导致导入失败并提示Invalid DN syntax - 在 Excel 中直接编辑保存为 CSV,可能引入 BOM 头或双引号包裹,导致
csvde解析失败;推荐用记事本或 VS Code 以 UTF-8(无 BOM)编码保存 - 密码字段叫
unicodePwd,但 CSVDE 根本不支持该字段导入——这是最大误区。密码只能后续用dsmod或 PowerShell 设置
执行导入命令:参数选择与权限要求
运行 csvde 必须在域控制器或已安装 RSAT 的管理机上,且使用具有“创建用户对象”权限的账户(通常是 Domain Admins 或 Account Operators)。
典型导入命令:
csvde -i -f users.csv -s dc01.domain.com -c "DC=domain,DC=com" "DC=domain,DC=com"
说明:
-
-i表示导入模式(不加就是导出) -
-f users.csv指定文件路径,建议用绝对路径避免定位错误 -
-s dc01.domain.com明确指定目标 DC,防止跨站复制延迟导致查不到新用户 -
-c是 DN 替换参数,把 CSV 中写的占位 DN(如DC=X,DC=Y)替换成真实域 DN;如果 CSV 里写的是完整 DN(如CN=John Doe,OU=Users,DC=domain,DC=com),就不用-c,但必须确保 OU 真实存在
注意:导入过程不会回显成功条目数,只在出错时打印错误行号和属性。静默完成 ≠ 成功,务必事后用 dsquery user -name "xxx" 或 ADUC 确认。
导入后必须做的三件事:启用账户、设密码、加组
CSVDE 创建的用户默认被禁用,且无密码(即使你误写了 unicodePwd 字段也无效)。跳过这步,用户根本无法登录。
- 启用账户:
dsmod user "CN=John Doe,OU=Users,DC=domain,DC=com" -disabled no
- 设初始密码(需满足域策略):
dsmod user "CN=John Doe,OU=Users,DC=domain,DC=com" -pwd P@ssw0rd123! -mustchpwd yes
- 加入安全组:
dsmod group "CN=SalesGroup,OU=Groups,DC=domain,DC=com" -addmbr "CN=John Doe,OU=Users,DC=domain,DC=com"
这些操作无法用 CSVDE 完成,也不建议硬塞进批处理脚本自动执行——密码明文暴露风险高,且 dsmod 对 DN 错误非常敏感。更稳妥的做法是用 PowerShell 写导入+初始化逻辑,把密码生成、邮件通知、日志记录都包进去。
真正麻烦的从来不是“怎么导入”,而是“怎么让这批人第二天就能用、不出权限问题、不被锁账户”。CSVDE 只解决最表层的数据搬运,后面那三层逻辑,得靠别的工具补上。

















