Exchange commands
Конфигурация: MS Exchange 2010 SP3, Windows 2008 R2
Collect info
База - размер баз данных
База - какие ящики в базе
Get-MailboxStatistics -Database "DB0" | sort TotalItemSize -desc | ft "displayname", "DisconnectReason", "TotalItemSize"
Mailbox - Biggest mailboxes
Get-MailboxStatistics -server SRV01 | sort TotalItemSize -desc | ft "displayname", "ItemCount", "TotalItemSize" | select -First 50
Search
# Ищем сущность, которой принадлежит e-mail
Get-Recipient | ?{$_.emailaddresses -like "*[email protected]*"}
MailBox - Import from PST
# Запускаем импорт. Обязательно UNC путь!!!
New-MailboxImportRequest -FilePath \\SRV01\pst\filename.pst -Mailbox "user.name"
# Смотрим процесс импорта
Get-MailboxImportRequest | Get-MailboxImportRequestStatistics
# Удаляем процессы импорта
Get-MailboxImportRequest | Remove-MailboxImportRequest
Mailbox - export to PST
# Экспорт всего ящика в PST
New-MailboxExportRequest -Mailbox User.Name -FilePath "\\SRV01\Share\filename.pst"
# Экспорт писем в *.pst с диапазоном дат
# Формат даты установлен в DD.MM.YYYY, но если DD > 12 - формируется ошибка!
# Опции:
# lt = less then <
# gt = greater then >
# le = less equal <=
# ge = greater equal >=
New-MailboxExportRequest -Mailbox user.name -ContentFilter {(Sent -ge "01/01/2012") -and (Sent -lt "01/01/2013")} -FilePath \\SRV01\Share\user_name-2012.pst
# Смотрим процесс экспорта
Get-MailboxExportRequest | Get-MailboxExportRequestStatistics
# Удалить запросы в статусе Завершенные
Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest
# Удалить все запросы
Get-MailboxExportRequest | Remove-MailboxExportRequest
Moving mailbox to another DB
# Запуск. Процесс выполняется в фоне. Во время выполнения процесса можно безболезненно перегрузить сервер.
New-MoveRequest -Identity "user.name" -TargetDatabase "DB0"
# Перенос системных (служебных) ящиков
Get-Mailbox -Database "DB_FROM" –Arbitration | New-MoveRequest -TargetDatabase "DB_TO"
# Смотрим статус
Get-MoveRequest | Get-MoveRequestStatistics
# Удалить запросы в статусе Завершенные
Get-MoveRequest -MoveStatus Completed | Remove-MoveRequest
Mailbox - folders size
# Развернутый
Get-MailboxFolderStatistics "user.name"
# Краткий
Get-MailboxFolderStatistics "user.name" | ft Name,FolderAndSubfolderSize
Mailbox - Передача прав на контакты другому пользователю
# Читаем права
Get-MailboxFolderPermission -identity "user.name-from:\Контакты"
# Добавляем права Editor
Add-MailboxFolderPermission -identity "user.name-from:\Контакты" -user "user.name-to" -AccessRights "Editor"
Remove messages
#Удаляем письмо с темой «spam subj» из почтового ящика пользователя s.petrov
Search-Mailbox -Identity "s.petrov" -SearchQuery 'тема:"spam subj"' –DeleteContent
# Смотрим сколько писем, с темой «spam subj» ...
# В конкретной DB
Get-Mailbox -DataBase "DB001" | Search-Mailbox -SearchQuery 'тема:"spam subj"' -EstimateResultOnly | ft DisplayName, ResultItemsCount
# По отдельному OU
Get-Mailbox -OrganizationalUnit "OU-NAME" | Search-Mailbox -SearchQuery 'тема:"spam subj"' -EstimateResultOnly | ft DisplayName, ResultItemsCount
# Удаляем письма с темой "spam subj" есть во всех ящиках базы DB001 ..
# В конкретной DB
Get-Mailbox -DataBase "DB001" | Search-Mailbox -SearchQuery 'тема:"spam subj"' -DeleteContent | ft DisplayName, ResultItemsCount
# По отдельному OU
Get-Mailbox -OrganizationalUnit "OU-NAME" | Search-Mailbox -SearchQuery 'тема:"spam subj"' -DeleteContent | ft DisplayName, ResultItemsCount
Clean queue
#
Get-Message -Queue "v09\Submission" -ResultSize unlimited | where{$_.Subject -eq "Subject" } | Remove-Message -WithNDR $False
#
Get-Message -ResultSize 10000 |where{$_.MessageSourceName -eq "SMTP:local" } | Remove-Message -WithNDR $False
#
Get-Message -ResultSize 10000 |where{$_.MessageSourceName -eq "DSN" } | Remove-Message