Active-Directory

如何從 Exchange 2003 中導出所有電子郵件地址?

  • January 1, 2017

我正在嘗試收集 Exchange 2003 系統正在使用的所有電子郵件地址的列表,其中不僅包括普通使用者地址,還包括通訊別名。我還需要格式如下的輸出:user@domain.com - 雖然我們只有一個域,所以即使我可以獲得使用者部分,也可以。

我不關心這裡的帳戶關聯,我真的只需要一個地址列表。

如何從 Exchange 2003 導出所有 smtp 電子郵件地址,包括user@domain.com格式的通訊組和別名地址?

我更喜歡可以通過命令行完成的事情,以便它可以由腳本生成,但如果有一種手動執行此操作的方法(閱讀:指向和點擊),它也會同樣有用。

有任何想法嗎?我在 System Manager 中看不到任何可以做到這一點的東西,而且我的搜尋也沒有找到任何可以滿足上述所有要求的東西。

解決了

這就是我使用公認答案的方式:

@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++ 中的搜尋和替換輕鬆解析出來。

如果您只需要主電子郵件地址,您可以在您的 Exchange 伺服器上執行它,填寫 domain 和 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 應該包含您所有的電子郵件地址。

引用自:https://serverfault.com/questions/207574