URL https://technet.microsoft.com/ru-ru/library/ff459253(v=exchg.150).aspx Задача: Удалить письмо из всех почтовых ящиков Exchange 2010/2013/2016. Сделать это можно с помощью Exchange Managemet Shell. 1)Необходимо дать права учетной записи, с помощью которой будем удалять письма из ящиков:
New-RoleGroup -Name "Import Export Admins" -Roles "Mailbox Import Export" -Members rammun Name AssignedRoles RoleAssignments ManagedBy ---- ------------- --------------- --------- Import Export Admins {Mailbox Import Export} {Mailbox Import Export-Import Export Admins} {5house.local/Microsoft Exchange Security Groups/Organization Management, 5house.local/User s/Administrator} New-ManagementRoleAssignment -Role "Support Diagnostics" –User rammun Name Role RoleAssigneeName RoleAssigneeType AssignmentMethod EffectiveUserNam e ---- ---- ---------------- ---------------- ---------------- ---------------- Support Diagnostics-Rami Mundy Support Diagno... Rami Mundy User Direct New-ManagementRoleAssignment -Role "Mailbox Import Export" -User rammun Name Role RoleAssigneeName RoleAssigneeType AssignmentMethod EffectiveUserNam e ---- ---- ---------------- ---------------- ---------------- ---------------- Mailbox Import Export-Rami ... Mailbox Import... Rami Mundy User Direct Add-RoleGroupMember -Identity "Discovery Management" -Member rammun
Для того чтобы права заработали нужно перелогиниться в системе. Для того, чтобы удалить письмо в определенном ящике нужно воспользоваться следующей командой
Search-Mailbox -Identity s.bondar -SearchQuery 'subject:"GeneralZod"' –DeleteContent
PowerShell : GUI based Email Search and Removal in Exchange https://gist.github.com/PrateekKumarSingh/c7d5480be4ad61a5efef 1. Поиск в ящике rammun по теме письма и удаление найденных писем:
Search-mailbox -Identity "rammun" -SearchQuery 'subject:"Mail delivery failed"' -DeleteContent
пример скрипта
PS C:\5house> .\exch.ps1
«Поиск писем по теме для одного пользователя и сохранение результатов поиска»
«с запросом обязательных параметров»
$UserName = Read-Host “Enter MailBox User Name (rammun)”
$Subject = Read-Host “Enter Subject text (тест)”
$LoggingMailbox = Read-Host “Mailbox alias to send the Log (administrator)”
$TargetFolder = Read-Host “Target Folder to save the Log (SaveLog)”
Search-Mailbox -Identity «$UserName» -SearchQuery «Subject:’$Subject'» -TargetMailbox «$LoggingMailbox» -TargetFolder «$TargetFolder» -LogLevel Full
2. Поиск по ящику rammun от «Новости компании 123», полученного с 18 по 19 ноября 2016, копирование найденных писем в ящик administrator и папку test:
Search-mailbox -Identity "rammun" -SearchQuery {from:"Новости компании 123" Received: 18/11/2016..19/11/2016 } -TargetMailbox "administrator" -LogLevel full -TargetFolder test
3. Параметр EstimateResultOnly позволяет показать только результат поиска:
Search-mailbox -Identity "mailboxuser" -SearchQuery отправлено:"1/01/2017..27/01/2017", получено:"1/01/2017..27/01/2017" -EstimateResultOnly
4. Поиск отправленных писем у одного пользователя , за период , и копирование найденных писем в папку Archive ящика mail
Search-mailbox -Identity "mailboxuser" -SearchQuery кому:"mail@mail.ru", отправлено:"1/13/2017..8/11/2017" -TargetMailbox "mail" -TargetFolder "Archive" -LogLevel Full
5.Поиск отправленных писем у одного пользователя за период, с выбранной темой
Search-mailbox -Identity "mailboxuser" -SearchQuery получено:"7/2/2017..9/2/2017", тема:"RE: Tema" -TargetMailbox "mailbox" -TargetFolder "Archive" -LogLevel Full
6.Создать новый запрос на поиск в почтовом ящике Create a new mailbox search request
new-MailboxSearch -name SearchName -SourceMailboxes Journalingmailboxname -TargetMailbox targetmailboxname -SearchQuery "From:'@Gmail.com'"
6.1. Введите эту команду, чтобы убедиться, что запрос поиск был создан Create a new mailbox search request
Get-MailboxSearch SearchName
7.Для использования созданной комманды поиска введите
Start-MailboxSearch -Identity SearchName