This post is also available in: angielski
Każdy administrator systemu Microsoft Exchange Server kiedyś napewno spotkał lub spotka się z sytuacją w której będzie musiał znaleźć określony email w skrzynkach i czasami nawet go usunąć.
W Microsoft Exchange 2010 do przeszukiwania skrzynek możemy z powodzeniem wykorzystywać polecenie Search-Mailbox.
Najpierw jednak należy się upewnić że mamy możliwość uruchamiana poleceń Search-Mailbox oraz New-MailboxImportRequest.
Jeżeli podczas próby uruchomienia polecenia New-MailboxImportRequest otrzymamy komunikat:
“The term ‘New-MailboxImportRequest’ is not recognized as the name of a cmdlet”
oznacza to że nie posiadamy odpowiednich uprawnień.
Nadanie odpowiednich uprawnień:
W Active Directory tworzymy uniwersalną grupę security np ExchangeImportExport_Allowed
Następnie w EMS (Exchange Management Shell) nadajemy odpowiednią role (RBAC) tej grupie jak poniżej:
New-ManagementRoleAssignment -Name "Import Export Mailbox Admins" -SecurityGroup "*ExchangeImportExport_Allowed*" -Role "Mailbox Import Export"
Po nadaniu odpowiednich uprawnień jesteśmy już przygotowani do przeszukiwania skrzynki.
Jak już wspomnieliśmy do przeszukiwania skrzynek wykorzystujemy polecenie:
Musimy pamiętać, że jeżeli użyjemy polecenia Search-Mailbox z opcją usunięcia znalezionych wiadomości bez kopiowania ich do innej skrzynki wówczas wiadomości te zostaną trwale usunięte.
Podstawowe trzy opcje wyszukiwania wiadomości:
- DeleteContent – użycie tylko tego parametru spowoduje usunięcie ze skrzynki wiadomości spełniających warunki określone w poleceniu Search-Mailbox. Nie będziemy mieli dostępu do żadnego logu jakie wiadomości zostały usunięte.
- LogOnly – użycie tego parametru powoduje logowanie informacji o wiadomościach które zostały znalezione, log zapisywany jest w pliku .csv oraz przesyłany jest jako załącznik na skrzynkę zdefiniowana w poleceniu Search-Mailbox
- Kopiowanie – użycie parametrów TargetMailbox i TargetFolder spowoduje skopiowanie wszystkich znalezionych wiadomości do wskazanego folderu we wskazanej skrzynce.
Przeszukanie pojedyńczej skrzynki, wyszukiwany jest email o określonym temacie, email nie zostanie usunięty jedynie wyniki wyszukiwania zostaną zapisane w docelowej skrzynce.
Search-Mailbox -Identity <name> -SearchQuery subject:"some subject" -TargetMailbox <name of mailbox> -TargetFolder <name of folder> -LogOnly -LogLevel Full
Search-Mailbox -Identity "Kowalski Jan" -SearchQuery subject:"Super wiadomość" -TargetMailbox Administrator -TargetFolder SearchLogs -LogOnly -LogLevel Full
Wyszukanie we wszystkich skrzynkach emaila który zawiera określony załącznik, zapisanie wyników do określonej skrzynki:
Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery attachment:<filename> -TargetMailbox <name of mailbox> -TargetFolder <name of folder> -LogOnly -LogLevel Full
Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery attachment:virus* -TargetMailbox Administrator -TargetFolder SearchLogs -LogOnly -LogLevel Full
Przeszukanie wszystkich skrzynek i usuniecie emaila zawierającego określony temat, użycie parametru DeleteContenet:
Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery subject:<subject line> -DeleteContent
Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery subject:"Download this file" -DeleteContent
Przeszukanie wszystkich skrzynek i skopiowanie określonej wiadomości przed jej usunięciem:
Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery subject:<subject line> -TargetMailbox <name of mailbox> -TargetFolder <name of folder> -DeleteContent
Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery subject:"Download this file" -TargetMailbox Administrator -TargetFolder DeletedMessages -DeleteContent
Usunięcie wiadomości od okreslonego nadawcy z określonym tematem:
Get-Mailbox -Identity “Kowalski Jan” | Search-Mailbox -SearchQuery subject:”This is SPAM!”,from:”spammer@spam.com” -DeleteContent
Get-Mailbox -resultsize unlimited | Search-Mailbox -SearchQuery subject:”This is SPAM!”,from:”spammer@spam.com” -DeleteContent
Jeżeli chcemy usunąć wiadomości otrzymane lub wysłane w określonym czasie wówczas składnia polecenia powinna wyglądać jak poniżej:
Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery "Sent:> $('2011-12-31') and Sent:< $('2012-06-01')" -Confirm:$false -Force -TargetMailbox "targetuser" -TargetFolder "SearchAndDeleteLog" -LogLevel Full -DeleteContent
Search-Mailbox -identity somemailbox -searchQuery "Received:< $(get-date).addDays(-2)" -DeleteContent
Search-Mailbox -Identity “mailbox_name” -SearchQuery “Received:> $(’10/01/2012') and Received:< $(’10/05/2012')” -DeleteContent
Poniżej przedstawiamy tabelkę z listą warunków dotyczących właściwości wiadomości email, które możemy użyć podczas wyszukiwania:
Property | Example | Search results |
---|---|---|
Attachments | attachment:secretreport.xls | Wiadomość z określonym załącznikiem secretreport.xls. Możemy użyć secretreport.xls lub secretrep*. |
Cc | cc:”Nowak Kazimierz”cc:Grupa_Znajomychcc: jan.kowalski@domena.com | Wiadomości z odpowiednim wpisem w polu CC |
From | from:”Jan Kowalski”from:Kowalskifrom:jan.kowalski@domena.com | Wiadomości otrzymane od określonych nadawców |
Sent | sent:07/19/2012 | wiadomości wysłane 19 Lipca 2012 |
Subject | subject:”Wazny Raport” | Wiadomość zawierająca temat Wazny Raport |
To | to:”Nowak Adam”to:A.Nowakto:a.nowak@domena.com | Wiadomości wysłane do określonej osoby. |