我正在尝试收集一份清单所有电子邮件地址我们的 Exchange 2003 系统正在使用,其中不仅包括普通用户地址,而且通讯组和别名我还需要如下格式的输出:[电子邮件保护]- 虽然我们只有一个域名,所以即使我可以获得用户部分,这样就可以了。
我并不关心这里的帐户关联,我真的只需要一个地址列表。
我该如何从 Exchange 2003 中导出所有 smtp 电子邮件地址,包括通讯组和别名地址[电子邮件保护]格式?
我更希望可以通过命令行来完成某些操作,以便可以通过脚本生成它,但如果有办法手动执行此操作(阅读:指向并单击),它也会同样有用。
有什么想法吗?我在系统管理器中没有看到任何可以执行此操作的东西,而且我的搜索也没有找到任何可以满足上述所有要求的东西。
解决了
这就是我使用已接受答案的方式:
@echo off
ldifde -f c:\temp\ldifde-dump.txt -l proxyaddresses
find "@" < c:\temp\ldifde-dump.txt > c:\temp\email-addresses.txt
del c:\temp\ldifde-dump.txt
这将生成 c:\temp\email-addresses.txt,尽管它包含一些额外的垃圾字符,但可以通过在 Notepad++ 中搜索和替换轻松地将其解析出来。
答案1
如果您只需要主要电子邮件地址,则可以在 Exchange 服务器上运行此命令,并填写域和 com 值:
csvde -r "(mail=*)" -d "dc=domain,dc=com" -l mail -f c:\gal.csv
要获取辅助电子邮件地址,有点棘手。您可以使用它来生成文件:
ldifde -f dump.ldf -l proxyaddresses
找到了一种从 LDF 文件中提取电子邮件地址的方法:http://bytes.com/topic/unix/answers/648158-extract-email-addresses-big-file
如果您可以在 Windows 中访问 perl,请创建一个包含以下内容的 perl 文件:
while (<STDIN>) {
while (/[\w\.\-]+@[\w\.\-]+\w+/g)
{print "$&\n"}}
然后运行此命令:
perl ExtractEmail.pl <dump.ldf >out.txt
Out.txt 应该包含您的所有电子邮件地址。
答案2
Adfind.exe 使用以下命令:AdFind.exe -default -nodn -nolabel -noctl proxyAddressess
删去所有 SMTP: 或 smtp: 地址。