Назад | Перейти на главную страницу

Exchange 2007 экспорт CSV всех внешних адресов электронной почты

Клиент задал нам несколько странный вопрос: экспортировать ВСЕ адреса электронной почты, с которых его компания когда-либо отправляла.

Не адреса их собственных почтовых ящиков, а все внешние адреса их клиентов, поставщиков и т. Д. Полагаю, журналов отслеживания не хватит, они не вернутся так далеко.

Мне нужна команда 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