Posted @ 11:52 pm June 15th, 2008
公司搬家了, AD中的用户信息需要修改一下, 比如地址, 电话, 传真什么的.
MS有个命令行工具叫"LDIFDE", 用这玩意儿可以轻松搞定.
首先, 把AD中涉及到的用户导出来:
ldifde -f all-users.ldf -s ADSERVER -d "OU=XXX,OU=XXX,OU=Domain Users,DC=XX,DC=XX,DC=XX" -p subtree -l "streetAddress,postalCode,telephoneNumber,facsimileTelephoneNumber" -r "(st=Jiang Su)"
最后的(st=Jiang Su)是一个filter, 也可以选择其他对象.
导出来的all-user.ldf可以用文本编辑器打开, 里面一行一行地记录了用户的信息. 很显然要对其进行修改, 但是直接修改里面的键值是不行的, 得指定其模式, 并且按照规定的文本格式重新排列.
比如一笔用户数据长这个样子:
dn: CN=USER,OU=XX,OU=XXX,OU=XXX,OU=Domain Users,DC=XX,DC=XX,DC=XX changetype: add streetAddress: xxx, xxxxxx, xxxxxxx facsimileTelephoneNumber: +86 25 xxxxxx postalCode: 210008 telephoneNumber: +86 25 xxxxxx
若修改streetAddress,facsimileTelephoneNumber,postalCode,telephoneNumber四项, 需要按照这个格式来组织:
dn: CN=USER,OU=XX,OU=XXX,OU=XXX,OU=Domain Users,DC=XX,DC=XX,DC=XX changetype: modify replace: streetAddress streetAddress: NEW ADDRESS - replace: facsimileTelephoneNumber facsimileTelephoneNumber: +86 25 NEW NUMBER - replace: postalCode postalCode: 210012 - replace: telephoneNumber telephoneNumber: +86 25 NEW NUMBER -
有了目标格式, 可以用多种途径将源数据文件修改成为可用的导入数据文件,可以编程替换, 也可以用一些功能强大的文本编辑工具直接正则表达式替换(因为telephoneNumber里面有分机信息, 每个人都不相同).
在将数据导入文件做好后, 就可以用下面的命令批量导入了:
ldifde -i -f user-to-inport.ldf -s ADSERVER
过程中我遇到一些问题:
1. 用户属性栏位字段的查找, 比如前面sample里面的
"streetAddress,facsimileTelephoneNumber,postalCode,telephoneNumber",
实际上, 我必须知道fax对应在AD中的字段是facsimileTelephoneNumber才可以将它导出;
2. 在日常AD的使用中, 很多不规范的电话信息, 比如 +86 25 xxxxxx 和 +86-25-xxxxxx 这让我在批量查找替换的过程中费了不少事.
最后附一份默认schema下的AD用户属性栏位字段表(FROM HERE):
First name sn Last name givenName Initials initials Display name displayName description description Office physicalDeliveryOfficeName Telephone Number telephoneNumber E-mail mail Web page wWWHomePage Country/region c State/province st City l Street streetAddress Zip/Postal Code postalCode P.O. Box postOfficeBox User logon name userPrincipalName User logonname(pre-Windows 2000) sAMAccountName Profile path profilePath Logon script scriptPath Home folder homeDirectory Home homePhone Pager pager Mobile mobile Fax facsimileTelephoneNumber IP phone ipPhone Notes info Title title Department department Company company Manager manager Direct report directReports
Leave a Reply




贵公司终于搬家了?
嗯... 搬到了一个巨sb的地方.