0

我正在使用 ldifde 导出模式,但输出文件包含很长的行,因此很难手动编辑数千行。

我必须编辑该文件,因为我必须在那里替换一个字符串,例如:

distinguishedName: 
 CN=xxx-com-Admin-Assistant-yy,CN=Schema,CN=Configuration,-->DC=morel,DC=mis,DC=mo
 r-ambiguit,<--DC=com

distinguishedName: 
 CN=xxx-com-Admin-Assistant-yy,CN=Schema,CN=Configuration,-->DC=myDomain,<--DC=com

如您所见,我应该首先打开文件然后替换字符串,否则替换将不起作用关于我应该如何执行的任何线索。我尝试了 perl 脚本,但没有运气。我还研究了 ldifde 选项。

提前致谢,m0dest0

4

2 回答 2

3

如果您严格希望使用 LDIFDE 将架构从一个域导入到另一个域,您可以使用 LDIFDE 中的-c参数将一个 DN 更改为另一个,请参阅KB237677:使用 LDIFDE 将目录对象导入和导出到 Active Directory

-c FromDN ToDN  Replace occurrences of FromDN to ToDN
于 2012-01-22T13:13:57.953 回答
2
#!/usr/bin/perl

use strict ;

my $orig = do { local $/ ; <DATA> } ;
( my $copy = $orig ) =~ s/(DC=)(.+?)(,DC=com)/$1myDomain$3/xsg ;

printf "Before:\n%s\nAfter:\n%s\n" , $orig , $copy ;

__DATA__
distinguishedName:
 CN=xxx-com-Admin-Assistant-yy,CN=Schema,CN=Configuration,DC=morel,DC=mis,DC=mo
 r-ambiguit,DC=com

这将打印:

Before:
distinguishedName:
 CN=xxx-com-Admin-Assistant-yy,CN=Schema,CN=Configuration,DC=morel,DC=mis,DC=mo
 r-ambiguit,DC=com

After:
distinguishedName:
 CN=xxx-com-Admin-Assistant-yy,CN=Schema,CN=Configuration,DC=myDomain,DC=com
于 2012-01-22T01:19:08.463 回答