如何解决“最后一个标记以'C'开始”和“更改修改条目缺less终止符”时的LDIFDE错误 – “”

当试图将现有用户与现有安全组配对(域迁移)时,如何解决“最后一个令牌以'C'开始”和“更改 – 修改条目缺less终止符' – ''上的LDIFDE错误?

我执行这个:

C:\Users\Administrator\Downloads\ldif_files>ldifde -i -k -f test.ldf -v -j "C:\Users\Administrator\Downloads\ldif_files" Connecting to "dc1.company.local" Logging in as current user using SSPI Importing directory from file "test.ldf" Loading entries There is a syntax error in the input file Failed on line 6. The last token starts with 'C'. The change-modify entry is missing the terminator '-'. 0 entries modified successfully. An error has occurred in the program C:\Users\Administrator\Downloads\ldif_files> 

test.ldf是这样的:

 dn: CN=PrinterAdmins,OU=GL,OU=Groups,OU=CMPNY,DC=company,DC=local changetype: modify add: member objectClass: top objectClass: group member: CN=John Doe,OU=Track-It!,OU=Admins,OU=CMPNY,DC=company,DC=local 

我已经苦苦地解决了这个问题,现在几个小时没有成功。 我努力了…

  • 最后添加一个单一的链接“ – ”
  • 在最后添加一行“ – ”,后面跟着一个空行(总共两行)
  • 其他几件事; 花了很多时间search解决scheme,并尝试一切都没有成功

OU,安全组和用户已存在。 对于我的生活,我无法弄清楚。 我已经成功地从'oldcompany.com'域导入了一个OU结构,使用Notepad ++来删除一个特定的空格/input字符,并且用'dc = company,dc = local'replace'dc = oldcompany,dc = com',导入用户,导入安全组 – 一切顺利..剩下的就是将成员的部分导入到每个组(将用户绑定到他们的组)。

请帮忙。 🙁

我在做什么/试图做/已经做了? 我大概有大约700个组,我需要将几百个用户配对。 OU结构导入,其次是用户,然后是[空]组导入成功。 剩下的就是将用户与他们的群组配对。 从旧的“company.com”域名(从2003 DC)转移到全新的2012 DC上的“company.local”。 要避免必须通过全部700组手动添加用户(因为我有一个Excel报告,告诉我每个组的成员/每个用户是哪个组的成员)。

编辑:解决scheme!

这是我必须做的,以使其工作:

  • 删除所有的objectClass行; 下一次我需要离开这个出口的命令参数
  • 该文件的第一行应该是一个空行,然后是第一组的“dn:”行
  • 该文件的倒数第二行应该是 – ,后跟一个空行(文件的最后一行)

因此,要将用户,安全组和团队成员从company.com导入到company.local,我必须这样做:

  1. 从company.com导出OU结构; 在company.com上,当您使用包含所有内容(安全组,用户,OU,GPO等)的Active Directory用户和计算机时,我们在域的根目录中有一个OU“CMPNY”
    • 执行ldifde -f exportOUs .ldf -s srvADdc1 -t 3268 -d“OU = CMPNY,DC = company,DC = com”-p subtree -r“(objectCategory = organizationalUnit)”-l“cn,objectclass,ou” on任何连接到旧company.com AD域的机器; 它会连接到srvADdc1 (一个域控制器)来search和导出
  2. 从company.com导出用户
    • 执行difde -f exportUsers .ldf -s srvADdc1 -t 3268 -d“OU = CMPNY,DC = company,DC = com”-p subtree -r“(&(objectCategory = Person)(objectClass = user))”-l “CN,显示名,distinguishedName来,姓名,objectCategory,对象类,sAMAccountName赋”
  3. 从company.com导出组没有成员(所以只是空的安全组)
    • 执行ldifde -f exportGroupsEmpty .ldf -s svvADdc1 -t 3268 -d“OU = CMPNY,DC = company,DC = com”-p subtree -r“(&(objectCategory = group)(objectClass = group))”-l “CN,名称,sAMAccountName赋,grouptype,对象类”
  4. 从company.com中导出组WITH会员(包含最less的信息来标识哪些User对象是什么组的成员)
    • 执行ldifde -f exportGroupsMembers .ldf -s srvADdc1 -t 3268 -d“OU = CMPNY,DC = company,DC = com”-p subtree -r“(&(ObjectCategory = group)(objectClass = group)(name = ) (member = ))“-l”member“
  5. 将旧company.com的OU骨架导入新的company.local域; 我们在company.local中使用了不同的OU骨架结构(在根目录下没有“CMPNY”OU),所以我们导入的这个OU骨架仅仅是为了导入旧数据,而且在我们导入所有的东西之后,我们可以重命名/清除/删除任何东西,然后移动和安排导入的对象到我们已经决定使用我们新的company.local域的新的/不同的OU骨架结构标准
    • 通过Notepad ++(我的个人喜好)修改exportOUs.ldf ,findDC = com并用DC = localreplace全部,然后保存文件
    • 执行ldifde -i -k -f exportOUs .ldf -v -j“C:\” ; 您可以更改-j参数值的path,或者完全删除-j“C:\” – 只要将任何错误logging到文件
  6. 从company.com导入用户到company.local
    • 通过记事本+ +修改exportUsers.ldf ,findDC = com并全部replace为DC =本地 ,并保存该文件
    • 执行ldifde -i -k -f exportUsers .ldf -v -j“C:\”
  7. 将company.com空的[Security] Group shell导入到company.local中
    • 通过Notepad ++修改exportGroupsEmpty.ldf ,findDC = com并用DC = localreplace全部,然后保存文件
    • 执行ldifde -i -k -f exportGroupsEmpty .ldf -v -j“C:\”
  8. 将用户和组之间的成员资格配对从company.com导入到company.local
    • 通过Notepad ++打开exportGroupsMembers.ldf
      • 仔细检查这个文件的内容; 请注意单个项目是如何分割成多行的(例如,如果有人决定按ENTER键1/3的方式) – 它们通常应该在一行而不是溢出到多行
      • 首先要解决多行溢出问题。 要做到这一点, select需要删除的两行之间的所有字符数据来修复它(仅用于一个实例),然后用全部replace它全部replace
      • finddc = com并全部replace为dc = local
      • 用两行replace所有的空行:第一行应该是单个字符,第二行应该是空行; 您可以通过select该空间并使用Notepad ++中的扩展search模式replace全部\ r \ n- \ r \ n \ r \ n来实现此目的
      • 确保文件的第一行在第一个“dn:”行(对于第一个组)之前是空白的空行(没有空格,只是空行)
      • 确保文件的倒数第二行是一行,然后是一个空行(作为最后一行)
    • find“changetype:add”,全部replace为changetype:modify \ r \ nadd:member (基本上,这会将'add'更改为'modify',并在这个“add:member”之下创build新行)
    • 执行ldifde -i -k -f exportGroupsMembers .ldf -v -j“C:\”

例子exportGroupsMembers.ldf(第一行有一个空格 – 它不应该有一个空格,只是应该是一个空白行;最后一行之后的行应该是一个空行):

 dn: CN=ERP_User_Test,OU=GL,OU=Groups,OU=CMPNY,DC=company,DC=local changetype: modify add: member member: CN=Ralph Doe,OU=Uncategorized,OU=Users,OU=CMPNY,DC=company,DC=local member: CN=Grace McPhillip,OU=Uncategorized,OU=Users,OU=CMPNY,DC=company,DC=local member: CN=Logan Rowley,OU=Track-It!,OU=Admins,OU=CMPNY,DC=company,DC=local - dn: CN=FolderSecurity_StockReportsDatabase_C,OU=GL,OU=Groups,OU=CMPNY,DC=company,DC=local changetype: modify add: member member: CN=David Collins,OU=Uncategorized,OU=Users,OU=CMPNY,DC=company,DC=local member: CN=Kelly Paris,OU=Uncategorized,OU=Users,OU=CMPNY,DC=company,DC=local member: CN=genericSalesUser,OU=Uncategorized,OU=Users,OU=CMPNY,DC=company,DC=local - dn: CN=FolderSecurity_StockReportsDatabase_R,OU=GL,OU=Groups,OU=CMPNY,DC=company,DC=local changetype: modify add: member member: CN=Ron Burgandy,OU=Uncategorized,OU=Users,OU=CMPNY,DC=company,DC=local member: CN=Jane Doe,OU=Uncategorized,OU=Users,OU=CMPNY,DC=company,DC=local member: CN=Bill Gates,OU=Uncategorized,OU=Users,OU=CMPNY,DC=company,DC=local - 

主要完成的是当我们将共享networking驱动器迁移到新networking时,个别文件夹安全权限被保留。 我们不必去重新创build所有的群组,将群组添加回群组,然后通过超过1000个独特的安全权限文件夹(我知道是愚蠢的)。

毕竟,我们可以..

  • 进入并删除所有永久过时的用户对象(例如genericITAdmin和genericITModerator和genericITTechpipe理员,testing账户,随机一次性账户等),但保留已停用的真实人员账户
  • 重命名安全组以标准化命名约定,然后开始清理安全组以合并,查找模式,删除独特的安全权限等
  • 将对象移动到新的OU骨架结构中,并在完成对它的除数操作,删除,重命名旧的东西之后,从根目录中删除CMPNY OU

我感谢以下线程的响应者: – [H] ardForum – ServerFault – TechNet

我遵循总体导出和导入工作stream的主要资源

  • http://social.technet.microsoft.com/Forums/en/winserverDS/thread/1b24edf2-9af5-447c-9f15-631e88eefe8c

我在旅途中利用或影响了我的其他有用信息

  • http://support.microsoft.com/kb/555636

  • https://stackoverflow.com/questions/11465364/how-to-import-a-groups-members-using-ldifde

  • http://msmvps.com/blogs/systmprog/archive/2006/10/26/LDIFDE- 2D00 -Export- 2F00 -Import -data-from-Active-Directory.aspx

  • http://technet.microsoft.com/en-us/library/bb727091.aspx

这是你的文件应该看起来像什么。 我刚刚在Windows 8上对LDS进行了testing。

 dn: CN=PrinterAdmins,OU=GL,OU=Groups,OU=CMPNY,DC=company,DC=local changetype: modify add: member member: CN=John Doe,OU=Track-It!,OU=Admins,OU=CMPNY,DC=company,DC=local - 

如果你的值没有特殊字符,那么ANSI文件应该可以。

机会是你有,但万一你没有http://support.microsoft.com/kb/237677可能会帮助。

你回答我接近我终于find的答案。 我正在更新数千个小组。 这是我最后的回答….'add:member'应该改为'replace:modify'…其他所有的东西都和上面一样^^^

 dn: CN=FolderSecurity_StockReportsDatabase_R,OU=GL,OU=Groups,OU=CMPNY,DC=company,DC=local changetype: modify replace: member member: CN=Ron Burgandy,OU=Uncategorized,OU=Users,OU=CMPNY,DC=company,DC=local member: CN=Jane Doe,OU=Uncategorized,OU=Users,OU=CMPNY,DC=company,DC=local member: CN=Bill Gates,OU=Uncategorized,OU=Users,OU=CMPNY,DC=company,DC=local -