ldifde 是 windows server 中用于批量导入导出 active directory ou 等对象的命令行工具,需严格遵循 ldif 语法:每个 ou 条目必须包含 dn、objectclass(top 和 organizationalunit,顺序不可颠倒)、ou 属性,条目间以空行分隔;导入时使用 ldifde -i -f 文件名 -s 域控制器 -c 替换根域名,推荐加 -v 和 -j 参数便于排错;常见错误包括 dn 语法错误、权限不足、父 ou 未预先创建或 dn 重复,可通过调整顺序、提升权限、检查字符或添加 -k 参数规避;导入后应使用 dsquery 或 get-adorganizationalunit 验证,并可扩展 description 等属性。
ldifde 是 windows server 中用于批量导入导出 active directory 对象的命令行工具,支持 ou、用户、组等对象操作。批量创建 ou 结构需使用 ldif 格式文件,并通过 ldifde -i 导入。关键在于 ldif 文件语法必须严格符合 ad 要求,否则会报错或创建失败。
LDIF 文件格式要点(创建 OU 必须满足)
每个 OU 条目需包含以下必需属性:
-
dn:完整可分辨名称(DN),如
dn: OU=Sales,DC=contoso,DC=com -
objectClass:必须为
top和organizationalUnit(顺序不能颠倒) -
ou:OU 名称本身,值需与 DN 中的 OU= 部分一致,如
ou: Sales - 空行分隔不同条目(包括末尾)
示例(sales.ldf):
dn: OU=Sales,DC=contoso,DC=comobjectClass: top
objectClass: organizationalUnit
ou: Sales
dn: OU=Marketing,OU=Sales,DC=contoso,DC=com
objectClass: top
objectClass: organizationalUnit
ou: Marketing
dn: OU=Finance,DC=contoso,DC=com
objectClass: top
objectClass: organizationalUnit
ou: Finance
导入命令及常用参数说明
在域控制器或已安装 RSAT 的管理机上以管理员身份运行 CMD 或 PowerShell:
- 基础导入:
ldifde -i -f sales.ldf -s dc01.contoso.com -c "DC=X" "DC=contoso,DC=com" - -s 指定目标域控制器(可省略,默认本地 DC)
-
-c 替换 LDIF 中的占位符(如用
DC=X表示根域名,再映射为实际域名),避免硬编码、提升复用性 - -v 启用详细日志(推荐首次运行时添加)
-
-j . 指定日志目录(当前目录),生成
ldifde.log方便排查
常见错误与规避方法
导入失败多因 LDIF 语法或权限问题:
- “Error 8344: The object name has bad syntax” → 检查 DN 是否含非法字符(如中文逗号、全角符号)、OU 名是否含斜杠 / 或引号
- “Error 50: Insufficient access rights” → 当前账户需有 OU 创建权限(通常 Domain Admin 或 Enterprise Admin)
- 父 OU 不存在时报错 → LDIF 中条目顺序必须由上至下(先建父 OU,再建子 OU),不可颠倒
- 重复 DN 报错 → 导入前确认目标 OU 尚未存在,或加 -k 参数忽略已存在对象错误(不覆盖,仅跳过)
验证与补充建议
导入完成后建议立即验证:
- 用
dsquery ou -name "Sales"或Get-ADOrganizationalUnit -Filter 'Name -eq "Sales"'确认 OU 已创建 - 若需设置 OU 属性(如 description、adminDescription),在 LDIF 中追加对应字段,如
description: 销售部门 - 生产环境建议先导出当前 OU 结构做备份:
ldifde -f backup_ou.ldf -d "DC=contoso,DC=com" -r "(objectClass=organizationalUnit)" -l "dn,objectClass,ou,description"










