Клиент задал нам несколько странный вопрос: экспортировать ВСЕ адреса электронной почты, с которых его компания когда-либо отправляла.
Не адреса их собственных почтовых ящиков, а все внешние адреса их клиентов, поставщиков и т. Д. Полагаю, журналов отслеживания не хватит, они не вернутся так далеко.
Мне нужна команда Powershell для «сканирования / поиска» всех почтовых ящиков и всех элементов электронной почты. Для каждого сообщения электронной почты необходимо экспортировать адрес отправителя и получателя в файл. Я знаю, что если пользователи удалили электронные письма, эти адреса не будут отображаться в экспорте, поскольку данных больше нет в базе данных электронной почты.
Нет проблем, если у него есть дубликаты, я могу отфильтровать дубликаты позже с помощью какого-нибудь инструмента. Клиент использует Exchange 2007.
Это должно сработать, если у вас в системе менее 9999 получателей. Если у вас их больше, просто увеличьте ResultSize.
$recip = Get-Recipient -ResultSize 9999 | Select-Object
alias,DisplayName,EmailAddresses
$output = @()
# Work thorugh each recipient
$recip | ForEach-Object {
# Work through each Email alias
$_.EmailAddresses | ForEach-Object {
# Clean SMTP from the from of the addresses
$cleaned = $_.TrimStart("smtp:").TrimStart("SMTP:")
# Check and exclude x500 system addresses
if ($cleaned -inotmatch "x500:*") {
$output += $cleaned
}
}
}
$output | Out-File addresses.csv -Force