关于DN名称乱码的解决办法!

      这里必须得感谢微软合作伙伴论坛的各位技术同仁的大力协助,在此谢过了。我顺便将问题的本源和解决方法贴在这里一下骂人,供各位参考:

      我的问题相信各位都碰到过,因为DN名称是根据Fullname 生成的,而生成FULLNAME 很多公司都不标准,有些中文简体,有些繁体,有些日语,有些阿拉伯语。这个时候在没有安装语言支持的时候我们需要批量运行一些脚本将是非常头疼的事情。用CSVDE 的时候你会发现导出的全是乱码。这个时候是很头疼的时候,有些企业他会做一些规则,规定这一列必须是英文,不能有任何中文。

       当然有企业就希望这个时候能够做规范,给出规则。这个时候就要去执行,怎么去执行?

        一个一个的改,当然可以吐舌头,但是如果用户成千上万咋办哭?这个时候我们就要使用Ldifde 命令了,怎么做?看看以下的解决方案吧:

 

为了修复这个问题,请按照我的步骤:
导出用户账户
========
1.以 Administrator 身份登录 Export 域。如果使用没有管理员特权的帐户登录,则可能无法对 Active Directory 执行导出和导入操作。
2.单击开始,指向程序,指向 附件,然后单击“命令提示符”。 
3.在命令提示符下,键入: ldifde -f exportuser.ldf -s testserver1 -d "dc=xxx,dc=xxx" -p subtree -r "(&(objectCategory=person)(objectClass=User)(givenname=*))" -l 
"cn,givenName,objectclass,samAccountName"

注意其中testserver1为你要导出的用户账户所在的DC,运行此命令可将该域中所有用户都导出到名为 exportOU.ldf 的文件中,该文件默认保存在%windir%\users\Administrator。
如不清楚导出步骤请参考以下网址
http://support.microsoft.com/kb/237677/zh-cn

修改文件
========
1.使用记事本打开该文件,你会看到类似如下的许多条目:
dn:: Q0495bCP5LiJLE9VPXRlbXAsREM9Y29udG9zbyxEQz1jb20=
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn:: 5bCP5LiJ
givenName:: 5bCP5LiJ
sAMAccountName:: 5bCP5LiJ
该条目就是DN中CN为中文名称的条目

2.因为只是修改DN中的CN所以可以不需要改变其他的属性,将其整个修改为类似如下条目:
dn:: Q0495bCP5LiJLE9VPXRlbXAsREM9Y29udG9zbyxEQz1jb20=
changetype: modrdn                                               
newrdn:CN=abc,OU=xxx,DC=xxx,DC=xxx
deleteoldrdn:1
改得时候注意一定要要知道他所在的位置,因为只是修改DN中的CN,其他位置不能错。改完后保存。
如不清楚请参考如下网址:
http://support.microsoft.com/kb/555124

导入用户账户
=========
1.CMD下输入:ldifde -i -f exportuser.ldf -s testserver1
2.完成之后请在域控上的Active Directory Users and Computers上刷新一下,之后您再查看用户的DN,你就会发现所有的DN都按照您制定字符进行了变更。

 

此外我还问了另外一个问题:

因为DN名称中的CN部分是由Fullname 生成,如果我再次变更FULLNAME。DN不会有变化吧!

他们的答复如下:

 

依据您最开始提出的问题,”CN=? ??,OU=M103,OU=M100,OU=M000,OU=xxxx,DC=xxxx,DC=xxx,DC=xxxx”,修改这个CN就是在修改整个object的DN,但是请你放心,这一修改不会改变其他的任何其他属性。

此外,您讲的没有错DN确实是由Full name 构成,但是除非使用lidifde工具导入导出用户进行修改才可以对DN进行修改,其他对full name 的修改都不会影响DN,比如使用dsmod user “CN=aa bb,OU=xxx,DC=xxx,DC=xxx” –fn cc –ln dd,当这一命令成功执行后您可以去Active Directory Users and Computers 下进行查看,该用户的Full name发生了变化,但是其DN依旧为 CN=aa bb,OU=xxx,DC=xxx,DC=xxx

 

基本上对这个整个的过程了解了!也非常感谢合作伙伴论坛的支持的朋友们!也希望各位能够受益

你可能感兴趣的:(object,user,脚本,语言,工具,微软)