This post is also available in: angielski
Czasami administrator serwera Exchange musi usunąć określoną wiadomość która trafiła do skrzynek lub znajduje się w kolejkach serwera Exchange.
Usunięcie emaili ze skrzynek znajdujących się na Exchange 2010:
Aby miec możliwość usunięcia wiadomości znajdujących się w skrzynkach, musimy administratorowi nadać odpowiednią rolę w Exchange 2010 RBAC Mailbox Export Import Role.
Wiadomości ze skrzynek możemy usunąć za pomocą polecenia Search-Mailbox.
Konto użytkownika który będzie usuwał wiadomości ze skrzynek musi dodatkowo być:
- administratorem serwera Exchange
- należeć do grupy lokalnych administratorów serwera
- posiadać pełne uprawnienia do skrzynek
Aby dodać rolę Mailbox Import Export dla użytkownika Admin wykonujemy:
New-ManagementRoleAssignment –Role “Mailbox Import Export” –User “Admin”
Czasami wymagane jest nadanie uprawnień Full Access do wszystkich skrzynek, co możemy wykonać jak poniżej:
Get-Mailbox -ResultSize unlimited | Add-MailboxPermissions -User Admin -AccessRights FullAccess -InheritanceType all
Po zakończeniu operacji usuwania poszukiwanego emaila należy cofnąć uprawnienia Full Access Admina do wszystkich skrzynek jak poniżej:
Get-Mailbox -ResultSize unlimited |Remove-MailboxPermissions -User Admin -AccessRights FullAccess -InheritanceType all
Aby przeszukać wszystkie skrzynki na serwerze MBX1 w celu znalezienia wiadomości której temat zawiera słowo Important Message i skopiować wynik tego wyszukiwania do skrzynki SearchMailbox wykonujemy:
Get-Mailbox -Server "MBX1" -ResultSize Unlimited | Search-Mailbox -SearchQuery 'Subject:"*Important Message*" -targetmailbox "*SearchMailbox*" -targetfolder "*SearchFolder*" -logonly -loglevel full
Jeżeli chcemy usunąć wszystkie wiadomości spełniające określone kryteria dla tematu oraz treści wiadomości, przeszukując wszystkie skrzynki wówczas używamy:
Get-Mailbox -Server "MBX1" -ResultSize Unlimited | Search-Mailbox -SearchQuery 'Subject:"*Subject*" and Body:"*Body*"' -deletecontent
Jeżeli przed usunięciem wiadomości chcemy je skopiować w bezpieczne miejsce do innej skrzynki możemy skorzystać z:
Get-Mailbox -Server "MBX1" -ResultSize Unlimited | Search-Mailbox -SearchQuery 'Subject:"*Subject*" and Body:"*Body*"' -targetmailbox "*SearchMailbox*" -targetfolder "*SearchFolder*" -loglevel full -deletecontent
Aby pominąć pytania o potwierzenie usunięcia wiadomości, na końcu polecenia możemy użyć parametru -Force jak poniżej:
Get-Mailbox -Server "MBX1" -ResultSize Unlimited | Search-Mailbox -SearchQuery 'Subject:"*Subject*" and Body:"*Body*"' -targetmailbox "*SearchMailbox*" -targetfolder "*SearchFolder*" -loglevel full -deletecontent -Force
Poniższy przykład kopiuje i usuwa wszystkie wiadomości w skrzynce mailboxname wysłane między 20 a 25 września:
Search-Mailbox -identity "mailboxname" -SearchQuery "Sent:> $('2012-09-20') and Sent:< $('2012-09-25')" -Confirm:$false -Force -TargetMailbox "targetuser" -TargetFolder "SearchAndDeleteLog" -LogLevel Full -DeleteContent -Force
Aby usunąć wszystkie wiadomości otrzymane które znajdują się w skrzynce JohnSmith i są starsze niż 2 dni:
Search-Mailbox -identity JohnSmith -searchQuery "Received:< $(get-date).addDays(-2)" -DeleteContent -whatif
jeżeli na końcu polecenia umieścimy parametr -WhatIf wówczas zostanie zwrócona informacja co dane polecenie spowoduje.
Aby usunąć wszystkie wiadomości otrzymane pomiędzy datami:
Search-Mailbox -Identity “mailbox_name” -SearchQuery “Received:> $(’10/01/2012') and Received:< $(’10/05/2012')” -DeleteContent
Usunięcie wiadomości z kolejek transportowych Microsoft Exchange 2010:
Aby wstrzymać dostarczenie wiadomości od określonego nadawcy znajdujących się w kolejkach transportowych możemy użyć poniższego polecenia:
Get-TransportServer | Get-Queue | Get-Message -ResultSize unlimited | Where {$_.fromaddress -like "*virus@domain.com*"} | Susspend-Message
Jeżeli chcemy usunąć wiadomości od określonego nadawcy które znajdują się w kolejkach transportowych, możemy użyć poniższego polecenia:
Get-TransportServer | Get-Queue | Get-Message -ResultSize unlimited | Where {$_.fromaddress -like "*virus@domain.com*"} | Remove-Message -WithNDR $False -Confirm $False
Aby usunąć wiadomości o określonym temacie z kolejek transportowych Exchange 2010 korzystamy z polecenia::
Get-TransportServer | Get-Queue | Get-Message -ResultSize unlimited | Where {$_.Subject -like "*virus*"} | Remove-Message -WithNDR $False -Confirm $False