查看文章 |
批量修改ad帐户属性
2009-08-03 19:17
Log parser 2.2是微软一款免费的命令行方式日志分析工具。他可用对各种日志文件使用SQL语句进行查询,同时按照指定格式输出。那怎么会和属性批量更改有关呢?各位耐心往下看。 目前,对AD的LDAP进行批量操作的命令有两个CSVDE和LDIFDE两个命令。这两个命令用法基本差不多,实际使用下来各有优缺点。 CSVDE 优点:输出是CSV格式的文件,可以很方便地在excel 或access 中进行替换,编辑。 缺点:CSVDE对AD的import功能很弱,只能通过该命令添加新用户,不能批量修改,删除。 LDIFDE 优点:输入输出的功能很强,可以完成所有对AD属性的操作。 缺点:输出生成LDF文件,该文件是非结构化的格式,只能在字符处理软件里面进行一些简单的查找,替换。而且只能更改对用户名为英文的属性! 如果有一种软件可以把CSV文件转换成LDF文件,那我们就可以随心所欲地批量更改AD和Exchange的属性。这个工具就是log parser 2.2 。 假定你已经用CSVDE导出了CSV文件,并做了修改如下,文件名import.csv: dn,displayname "CN=Zhang Shan,OU=External Users,DC=company,DC=com","Zhang, Shan(CN)" "CN=li si,OU=External Users,DC=company,DC=com","Li, Si(CN)" 现在你想将这些更改写回AD。 首先,用notepad写一个tpl模板文件。例如:template.tpl dn: %FIELD_3% changetype: modify replace: displayname - (注意,最后两行的减号和空行是必须的,这是分割标志。%FIELD_3%代表CSV文件第一列,以此类推,我也不知道为什么是从3开始的。) LogParser "SELECT * INTO out.ldf FROM import.csv" -o:TPL -tpl:template.tpl (该命令缺省情况下会忽略CSV文件第一行,认为是csv的header) 该命令会生成out.ldf文件,内容如下: dn: CN=Zhang Shan,OU=External Users,DC=company,DC=com changetype: modify replace: displayname displayname: Zhang, Shan(CN) - dn: CN=li si,OU=External Users,DC=company,DC=com changetype: modify replace: displayname displayname: Li, Si(CN) - 这就是我们需要的ldf文件。 最后,运行如下命令: ldifde -i -f out.ldf -k -j c:\ 最关键一点,所有ldf属性必须包含有效值,否则ldifde会报错。通常一次修改多个属性,可能会出现这个问题。如果ldf文件中包含如下记录,ldifde导入会出错。在处理CSV文件的时候就要考虑这点。 dn: CN=li si,OU=External Users,DC=company,DC=com changetype: modify replace: displayname displayname: - log parser 2.2 下载地址 http://www.microsoft.com/downloads/info.aspx?na=90&p=&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=890cd06b-abf8-4c25-91b2-f8d975cf8c07&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2ff%2ff%2f1%2fff1819f9-f702-48a5-bbc7-c9656bc74de8%2fLogParser.msi |
最近读者: