|
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
<LPBODY>
dn: %FIELD_3%
changetype: modify
replace: displayname
displayname: %FIELD_4%
-
</LPBODY>
(注意,最后两行的减号和空行是必须的,这是分割标志。%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
[ 本帖最后由 oneway1 于 2007-3-16 19:15 编辑 ] |
|