如何使用'ldifde'导入组成员?

时间:2012-07-13 06:39:21

标签: active-directory windows-server-2003 ldif

我有两个域名。一个生产。一个测试。两者之间没有信任。

我可以使用ldifde命令成功导入所有用户对象和组对象。当我尝试在导出/导入中包含组成员时,我似乎无法成功导入。

以下是我尝试的变体:

尝试1:

file format:
dn: CN=Group-name,OU=Groups,OU=Managed,DC=dev,DC=net
changetype: add
member: CN=USER1,OU=Users,OU=Managed,DC=dev,DC=net
member: CN=USER2,OU=Users,OU=Managed,DC=dev,DC=net

ldifde command used:
ldifde -i -k -f groupexp12072012-test.ldf -v

output:
Connecting to "DC"
Logging in as current user using SSPI
Importing directory from file "groupexp12072012-test.ldf"
Loading entries
1: CN=Group-name,OU=Groups,OU=Managed,DC=dev,DC=net

Add error on line 1: Object Class Violation
The server side error is "The object class attribute must be specified."
0 entries modified successfully.
An error has occurred in the program
No log files were written.  In order to generate a log file, please
specify the log file path via the -j option.

尝试2: 在正确的objectClass中添加到我的ldifde导入文件中:

file format:
dn: CN=Group-name,OU=Groups,OU=Managed,DC=dev,DC=net
changetype: add
objectClass: top
objectClass: group
member: CN=USER1,OU=Users,OU=Managed,DC=dev,DC=net
member: CN=USER2,OU=Users,OU=Managed,DC=dev,DC=net

ldifde command used:
ldifde -i -k -f groupexp12072012-test.ldf -v

output:
Connecting to "DC"
Logging in as current user using SSPI
Importing directory from file "groupexp12072012-test.ldf"
Loading entries
1: CN=Group-name,OU=Groups,OU=Managed,DC=dev,DC=net
Entry already exists, entry skipped

0 entries modified successfully.

The command has completed successfully

尝试3: 删除了现有的组对象,并使用了与“尝试2”相同的命令和格式:

Connecting to "DC"
Logging in as current user using SSPI
Importing directory from file "groupexp12072012-test.ldf"
Loading entries
1: CN=Group-name,OU=Groups,OU=Managed,DC=dev,DC=net
Object does not exist, entry skipped

0 entries modified successfully.

所以我被困住了。显然'ldifde'可以用来导入小组成员 - 我的所有同事都说它从来没有用过,但我偶然发现MS文章说不然; http://social.technet.microsoft.com/Forums/nl/winserverDS/thread/089a3f3b-617f-4c66-a3fc-be543d97a612

然后我偶然发现“5. LDIFDE不支持更改组成员身份。您可以使用CSVDE或ADDUSERS.exe或DStools for Windows 2003 Editions。”这里: http://support.microsoft.com/kb/555634

我无缘无故地疯狂 - 我会成功使用'ldifde'吗?

编辑:是的,我无缘无故地疯了。我的一个目标用户实际上是在我为'ldifde'指定的不同OU中。因此,“ldifde”只会放弃而不会向该组添加任何成员。

2 个答案:

答案 0 :(得分:1)

以下是将用户添加到现有群组的方法(ldifde -i -k -f AddGrpMember.ldf -v ):

dn: CN=MonGrpSec,OU=MonOu,DC=dom,DC=fr
changeType: Modify
add: member
member: CN=jblanc,OU=MonOu,DC=dom,DC=fr
member: CN=Jean Paul Blanc,OU=MonOu,DC=dom,DC=fr
-

以下是一种使用成员创建新群组的方法(ldifde -i -k -f NewGrpWithMember.ldf -v ):

dn: CN=NewGrpSec,OU=MonOu,DC=dom,DC=fr
changeType: Add
objectClass: top
objectClass: group
CN: NewGrpSec
member: CN=jblanc,OU=MonOu,DC=dom,DC=fr
member: CN=Jean Paul Blanc,OU=MonOu,DC=dom,DC=fr

答案 1 :(得分:0)

如果组成员不存在,或者文件中的dn与目标组的dn不匹配,则ldifde导入组成员失败。

对于我的测试域中的一些重要组,我说要用整个标题替换“member:”来修改组。这样,任何单个组成员都不会阻止其他组成员进行导入。

简单查找和替换 发现:会员: 替换为: - ^ p ^ pdn:CN = [groupname],OU = [ou name],OU = Domain Users,DC = TEST,DC = ORG ^ pchangetype:modify ^ padd:member ^ pmember:

基本上,添加一个“ - ”后跟一个空行,然后添加标题行。