PowerShell скрипт удаления писем в Exchange от отправителья
Общая
Небольшой скрипт на PowerShell для удаления писем во всех почтовых ящиках, зарегистрированных в Exchange по определенному отправителю.
Скрипт выполнять в Exchnage Management Shell
Иногда бывает нужно удалить все письма во всех ящиках от определенного отправителя, например от той или иной системы уведомления, письма от которой пользователи не удаляют.
Создайте отдельного пользователя с почтовым ящиком для запуска скрипта в автоматическом режиме, а так же получения результатов на почту.
Данный скрипт выполняет удаление писем от определенного отправителя и отправляет отчет в виде CSV файла на указанный почтовый ящик.Его можно повесить в планировщик задач:
$file = 'c:\temp\result.csv' # Путь для файла результата - не забудьте создать папку
$search_range = 90 # Искать письма не старше указанного количества дней
$day_to_stay = 61 # Письма младше указанного количества дней не трогаются
$sender = 'example@domain.com' # Ящик искомого отправителя
$result_recipient = 'example@domain.com' # Ящик получателя отчета
$result_sender = 'example@domain.com' # Ящик отправителя отчета
$smtp_server = '192.168.0.1' # SMTP-серввер для отправки отчета
$email_subject = 'Script workout' # Тема отправляемого письма
$email_body = 'See attachment' # Тело отправляемого письма
$from_date = (Get-Date).AddDays(-$search_range).ToString('dd-MM-yyyy')
$to_date = (Get-Date).AddDays(-$day_to_stay).ToString('dd-MM-yyyy')
del $file
Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery "(Received:$from_date..$to_date) AND (From:$sender)" -DeleteContent -Force | Export-CSV -delimiter ";" $file -Encoding UTF8 -NoTypeInfor
Send-MailMessage -SmtpServer $smtp_server -To $result_recipient -From $result_sender -Subject $email_subject -Body $email_body -attachment $file
Если вы хотите проверить количество писем то замените строку:
Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery "(Received:$from_date..$to_date) AND (From:$sender)" -DeleteContent -Force | Export-CSV -delimiter ";" $file -Encoding UTF8 -NoTypeInfor
На:
Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery "(Received:$from_date..$to_date) AND (From:$sender)" -Estimate | Export-CSV -delimiter ";" $file -Encoding UTF8 -NoTypeInfor
Если необходимо запустить это в планировщике задач.
Пользователь от имени которого выполняется скрипт должен находиться в Exchnagae Administrators.
Приложение для запуска:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Аргументы:
-Nologo -NonInteractive -WindowStyle Hidden -NoProfile -command ". 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; ". 'Путь до файла'""
- Просмотров: 15780