Поиск старых почтовых ящиков в Exchange 2010
Дата: 31.12.2014 Автор Admin
В данной статье я расскажу как с помощью Powershell найти старые почтовые ящики Exchange и отправить уведомление на Email.
Для решения этой задачи мы напишем скрипт, который будет делать следующее:
1) Импортирует модуль Exchange
2) импортирует модуль Active Directory
3) Найдет пользователей которые не заходили в систему 120 дней
4) Проверит у кого из них есть почтовый ящик
5) Полученный результат отправит нам на почту.
Теперь сам скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# Импорт модуля Exchange add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010 # Импорт модуля ActiveDirectory import-module ActiveDirectory #Удаляем старые файлы inactive.txt и .\mailbox.txt remove-item .\inactive.txt remove-item .\mailbox.txt #Поиск пользователей которые не заходили в систему 120 дней (get-aduser -filter * -properties lastlogondate | Where-Object {$_.enabled -eq "true"-and $_.lastlogondate -lt (get-date).adddays(-120)}).SamAccountName > .\inactive.txt $userlist = Get-Content .\inactive.txt #Проверяем есть ли у них почтовый ящик foreach ($user in $userlist) { $Mailbox = get-mailbox -identity $user if ($mailbox) { $user >> .\mailbox.txt }} $files = Get-Content .\mailbox.txt #Формируем тело письма $body = Get-Content .\mailbox.txt | Sort | Out-String $body1 = echo The old mailboxes not found | Out-String #Отправляем письма if ($files -ne $null) { Send-MailMessage -From admin-notification@domain.local -To sysadmin@domain.local -Encoding ([System.Text.Encoding]::UTF8) -attachment .\mailbox.txt -Subject "Обнаружены старые почтовые ящики" -Body $body -SmtpServer EXCHANGE-Server.domain.local } else { Send-MailMessage -From admin-notification@domain.local -To sysadmin@domain.local -Encoding ([System.Text.Encoding]::UTF8) -Subject "Cтарые почтовые ящики не обнаружены" -Body $body1 -BodyAsHtml -SmtpServer EXCHANGE-Server.domain.local } |
Комментарии