חיפוש ומחיקה של הודעות דואר אלקטרוני מתיבות דואר של משתמשים ב- Exchange Server (Microsoft 365) באמצעות PowerShell
ב- Exchange Server, באפשרותך להשתמש ברכיבי ה- cmdlet Search-Mailbox או New-ComplianceSearch PowerShell (הזמינים בגירסאות חדשות יותר של Exchange Server ו- Exchange Online/Microsoft 365) כדי לחפש ולמחוק פריטי דואר אלקטרוני מתיבות דואר של משתמשים. לדוגמה, משתמש שלח בטעות נתונים פרטיים לעמיתים בארגון ולא היה לו זמן לאחזר את ההודעה ב- Outlook. מחלקת אבטחת המידע דורשת ממנהל Exchange למחוק דואר אלקטרוני פרטי זה מכל תיבות הדואר של המשתמשים בארגון/דייר Exchange שלך.
המאמר חל על Exchange Server מקומי 2019/2016/2013 ו- 2010, וכן Exchange Online מבוסס ענן (Microsoft 365).
ההרשאות הדרושות לחיפוש בתיבות דואר של Exchange
יש להקצות את התפקידים הבאים לחשבון מנהל המערכת המחפש ומוחק פריטי תיבת דואר:
ייצוא ייבוא תיבת דואר
חיפוש תיבות דואר
באפשרותך להקצות את התפקידים באמצעות EAC או PowerShell. התחבר לשרת Exchange on-prem באמצעות PowerShell והפעל את הפקודות:
New-ManagementRoleAssignment -User j.anderson -Role "Mailbox Import Export"
New-ManagementRoleAssignment -User j.anderson -Role "Mailbox Search”ב- Exchange Online, עליך להקצות את התפקידים הבאים:
Add-RoleGroupMember "Discovery Management" -member max@a-d.site
New-RoleGroup "Mailbox Import-Export Management" -Roles "Mailbox Import Export"
Add-RoleGroupMember "Mailbox Import-Export Management" -Member max@a-d.siteהוספת החשבון שלך לקבוצה 'מנהלי גילוי אלקטרוני' במרכז התאימות של Microsoft 365
טיפ. באפשרותך להשתמש במודול Exchange Online PowerShell v2 (EXO V2) כדי להתחבר ל- Exchange Online.
לאחר הקצאת התפקידים, הפעל מחדש את הפעלת PowerShell.
תיבת דואר של חיפוש: חיפוש ומחיקה של הודעות מתיבות דואר של משתמשי Exchange
באפשרותך להשתמש בממשק האינטרנט של מרכז הניהול של Exchange (EAC) או ב- cmdlet PowerShell של תיבת דואר חיפוש כדי לחפש פריטי דואר אלקטרוני בתיבות דואר של משתמשים. פקודה זו מאפשרת לך לחפש הודעות דואר אלקטרוני בתיבות דואר לפי קריטריונים מסוימים, להעתיק את הפריטים שנמצאו לתיבת דואר אחרת או להסיר אותם.
כדי לחפש בתיבת דואר של משתמש הודעות דואר אלקטרוני עם נושא ספציפי, הפעל את הפקודה:
Search-Mailbox -Identity k.peterson -SearchQuery 'Subject:"Annual Report"'כדי לחפש בכל תיבות הדואר בארגון Exchange, השתמש בפקודה הבאה:
Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery 'Subject:"Annual Report"'בעת שימוש cmdlet תיבת דואר חיפוש ב- Exchange Online (Microsoft 365), מופיעה אזהרה:
WARNING: On July 1, 2020, the Search-Mailbox cmdlet is being retired and Microsoft Support will no longer provide assistance. See https://go.microsoft.com/fwlink/?linkid=2113221 to learn more. WARNING: The Search-Mailbox cmdlet returns up to 10000 results per mailbox if a search query is specified. To return more than 10000 results, use the New-MailboxSearch cmdlet or the In-Place eDiscovery & Hold console in the Exchange Administration Center.
Microsoft ממליצה להשתמש במוצר החזק יותר
New-ComplianceSearchו
New-ComplianceSearchActionרכיבי cmdlet של חיפוש בתיבת דואר (נדון להלן).
כדי להעתיק את תוצאות החיפוש לתיבת דואר ולתיקיה מסוימות, השתמש בפרמטרים TargetMailbox או TargetFolder. פעולה זו תאפשר לך להציג באופן ידני את הודעות הדוא"ל שנמצאו ב- Outlook שלך לאחר השלמת החיפוש. נניח שעליך לחפש הודעות דואר אלקטרוני ברשימת תיבות הדואר (נתון ב- users.txt) ולהעתיק את הפריטים שנמצאו לתיקיה בתיבת הדואר הספציפית:
get-content users.txt | Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery 'Subject:"Annual Report"' -TargetMailbox sec_dept -TargetFolder "ExchSearchResult”האפשרות -LogOnly -LogLevel Full פירושה שיש להעריך את תוצאות החיפוש בלבד מבלי להעתיק פריטים לתיבת דואר המהווה יעד או למחוק את ההודעות. אם נעשה שימוש בארגומנט זה, דוח המכיל את תוצאות החיפוש יישלח לתיבת הדואר של היעד שצוינה. דוח הוא קובץ CSV המאוחסן בארכיון המפרט תיבות דואר העונות על קריטריוני החיפוש.
שים לב שהדוח שהתקבל כולל את הודעת הדוא"ל מצב קריאה (
Read: True/False).
ניתן להעריך את תוצאות החיפוש באמצעות הפרמטר -EstimateResultOnly. שים לב שבעת שימוש באפשרות זו, אינך צריך לציין תיבת דואר או תיקיית יעד.
Get-Mailbox | Search-Mailbox -SearchQuery 'Subject:"report"' -EstimateResultOnly|select Identity,ResultItemsCount,ResultItemsSize| Where-Object ResultItemsCount -gt 0
למחיקת פריטי הדוא"ל שנמצאו, השתמש בפרמטר -DeleteContent. הוסף את הפרמטר -Force כדי לדלג על בקשות אישור
בוא נמחק את כל הודעות הדואר האלקטרוני מהשולח k.peterson@a-d.site בכל תיבות הדואר בשרת Exchange הספציפי:
Get-Mailbox -Server berl-ex1 -ResultSize unlimited | Search-Mailbox -SearchQuery 'from:"k.peterson@a-d.site"' -DeleteContent -Forceלפני הסרת פריטי דואר אלקטרוני מתיבות דואר באמצעות הפרמטר -DeleteContent, מומלץ מאוד להציג הודעות דואר אלקטרוני שנמצאו באמצעות
-EstimateResultOnlyאו
-LogOnlyטיעונים.
כדי לחפש רק פריטים שנמחקו, הוסף את הפרמטר -SearchDumpsterOnly (כדי לא לכלול חיפוש בין הפריטים שנמחקו, הוסף את
-SearchDumpster:$falseויכוח). אם עליך לא לכלול בתוצאת החיפוש תיבת דואר של ארכיון, השתמש בפרמטר -DoNotIncludeArchive.
ל- cmdlet Search-Mailbox יש מגבלה משמעותית: הוא יכול להחזיר רק 10,000 רכיבים. אם חרגת ממגבלה זו, היא תחזיר את השגיאה:
Sending data to a remote command failed with the following error message: The total data received from the remote client exceeded allowed maximum. Allowed maximum is 524288000.כדי למחוק פריטים נוספים, יהיה עליך להפעיל את cmdlet תיבת דואר חיפוש מספר פעמים או לפצל את תיבות הדואר לקבוצות לפי מסדי נתונים של תיבות דואר או שרתי Exchange.
Get-Mailbox -Database berl-ex1 | Search-Mailbox -SearchQuery 'from:spam@spambot.org' -DeleteContent -Forceבעיית cmdlet נוספת של תיבת דואר של חיפוש היא הביצועים הגרועים שלה. במקרה של חברה גדולה, החיפוש יכול להימשך מספר ימים. בגירסאות מודרניות של Exchange Server ו- Microsoft 365, מומלץ להשתמש ב- cmdlet New-ComplianceSearch (נדון להלן) כדי לחפש הודעות דואר אלקטרוני.
דוגמאות לחיפוש מילות מפתח עבור תיבות דואר של Exchange
כעת נבחן דוגמאות של שאילתות חיפוש לחיפוש פריטי דואר אלקטרוני באמצעות הפרמטר SearchQuery. הפרמטר SearchQuery מעבד שאילתה בתבנית KQL (שפת שאילתות מילות מפתח) https://docs.microsoft.com/en-us/sharepoint/dev/general-development/keyword-query-language-kql-syntax-reference.
כדי למצוא ולהסיר את כל הודעות הדוא"ל המכילות את מילת המפתח "סודי" בנושא מכל המשתמשים שאינם מהדומיין שלך:
Search-Mailbox -Identity k.peterson -SearchQuery 'Subject:"Secret" and from<>”a-d.site”' -DeleteContentבאמצעות האופרטורים הלוגיים OR ו- AND, באפשרותך לשלב תנאי חיפוש דואר אלקטרוני מורכבים יותר.
חפש ומחק את כל הודעות הדוא"ל עם קבצים מצורפים הגדולים מ- 20 MB:
Search-Mailbox -Identity k.peterson -SearchQuery 'hasattachment:true AND Size >20971520' -DeleteContentטיפ. גודל פריטי הדואר האלקטרוני מצוין בבתים, והגודל של פריט הדואר האלקטרוני כולו נספר, ולא רק קבצים מצורפים. ניתן גם לציין את הגודל במגה-בתים. במקרה זה, נעשה שימוש בתחביר הבא:
-SearchQuery {Size -gt 30MB}באפשרותך לחפש בו-זמנית את הטקסט בנושא ובגוף הודעת הדואר האלקטרוני. לדוגמה, בואו למצוא ולמחוק את כל ההודעות המכילות "ראש השנה " בנושא או "ברנדי " בגוף הדוא"ל.
Search-Mailbox k.peterson -SearchQuery {Subject:"RE:New Year" OR body:"brandy"} -DeleteContent -Forceבאפשרותך לחפש בתיבות הדואר פריטים ספציפיים באמצעות הארגומנט Kind. לדוגמה:
פגישות:
-SearchQuery "Kind:meetings"אנשי קשר:
-SearchQuery "Kind:contacts"או רכיבים אחרים של Outlook:
דואר אלקטרוני
פגישות
פעילויות
הערות
מסמכים
יומני
אנשי קשר
הודעות מיידיות
חיפוש הודעות דוא"ל על ידי הנמען והשולח הספציפיים:
-SearchQuery 'from:"ceo@a-d.site" AND to:"support-team@a-d.site"'הודעות דוא"ל עם קבצים מצורפים :
-SearchQuery 'hasattachment:true'הודעות דוא"ל שנקראו:
-SearchQuery 'isread:false'חיפוש הודעות דוא"ל לפי גודל:
-SearchQuery 'size>300000'
באפשרותך לחפש הודעות עם הקובץ הספציפי כקובץ מצורף:
-SearchQuery 'attachment:"annual_report2021.pdf"'או לפי סוג קובץ:
-SearchQuery 'attachment -like:"*.docx"'אתה יכול לחפש לפי תאריך שליחה/קבלה, אבל יש כמה ניואנסים. בעת שימוש בתאריך כקריטריון חיפוש, עליך לשקול את ההגדרות האזוריות של Exchange Server. לדוגמה, 22 בפברואר 2022 עשוי להיות מוגדר באחת מהדרכים הבאות:
22/02/2022
02/22/2022
22 בפברואר 2022
22/פברואר/2022
ואם אתה רואה את השגיאה "
The KQL parser threw an exception…" בעת הפעלת הפקודה Search-Mailbox, פירוש הדבר שאתה משתמש בתבנית תאריך שגויה.
כדי לחפש הודעות דואר אלקטרוני שנשלחו ביום מסוים, השתמש בשאילתה זו:
-SearchQuery sent:02/22/2022אם עליך לציין את טווח התאריכים (אתה מחפש את פריטי הדוא"ל שהתקבלו בתוך פרק זמן מוגדר):
-SearchQuery {Received:01/04/2022..02/20/2022}הנה דוגמה נוספת. בואו נחפש הודעות דוא"ל שהתקבלו לאחר 9 במאי:
-SearchQuery {Received:> $('05/09/2021')}תאימות חדשהחיפוש: כיצד לחפש ולמחוק הודעות דואר אלקטרוני ב- Exchange?
ב- Exchange 2016/2019 וב- Exchange Online (Microsoft 365), באפשרותך להשתמש בדרך החדשה כדי לחפש ולמחוק במהירות הודעות דואר אלקטרוני בתיבות דואר של משתמשים באמצעות רכיבי ה- cmdlet New-ComplianceSearch ו- New-ComplianceSearchAction.
Microsoft ממליצה להשתמש ברכיבי cmdlet אלה כדי לחפש הודעות דואר אלקטרוני ב- Exchange במקום הפקודה תיבת דואר של חיפוש שהוצאה משימוש.
התחבר למרכז האבטחה והתאימות של M365:
Connect-IPPSSessionבוא ננסה לחפש בתיבות דואר דואר אלקטרוני עם נושא, שולח ותאריך ספציפיים.
$Sender = "max@a-d.site"
$StartTime = "02/20/2022"
$EndTime = "02/22/2021"
$Subject = "report2022"כדי ליצור משימת חיפוש בדואר אלקטרוני בהתבסס על הקריטריונים שצוינו, הפעל:
New-ComplianceSearch -Name ContentSearch_Report2022 -ExchangeLocation all -ContentMatchQuery "sent>=$($StartTime) AND sent<=$($EndTime) AND sender:$($Sender) AND subject:$($Subject)"באפשרותך לציין קריטריוני חיפוש בתכונה -ContentMatchQuery, בדומה לאפשרויות -SearchQuery ב- cmdlet Search-Mailbox.
לעתים קרובות בשלב זה מתרחשת שגיאה:
New-ComplianceSearchAction: The term 'New-ComplianceSearchAction' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.ודא שהקצית את כל תפקידי Exchange כמתואר לעיל.
סגור את ההפעלה הנוכחית של PowerShell והתחבר מחדש:
Get-PSSession | Remove-PSSessionכדי להפעיל עבודה זו:
Start-ComplianceSearch -Identity ContentSearch_Report2022צריך לחכות שזה ייעשה. באפשרותך לקבל את מצב החיפוש הנוכחי כך:
Get-ComplianceSearch -Identity ContentSearch_Report2022| FL name,items,size,jobprogress,statusכדי להדפיס תוצאות חיפוש למסוף במצב תצוגה מקדימה:
New-ComplianceSearchAction -SearchName ContentSearch_Report2022 -Preview
(Get-ComplianceSearchAction ContentSearch_Report2022| Select-Object -ExpandProperty Results).Split(";")אם ברצונך להסיר את כל פריטי הדואר האלקטרוני שנמצאו מתיבות דואר של משתמשים, השתמש באפשרות -נקה (זמינה ב- Exchange Online):
New-ComplianceSearchAction -SearchName ContentSearch_Report2022 -Purge -PurgeType SoftDeleteאם ברצונך להפוך הודעות דואר אלקטרוני שנמחקו לניתנות לשחזור על-ידי משתמשים, השתמש בלחצן
-PurgeType SoftDeleteאפשרות. לציין
-PurgeType HardDeleteכדי להסיר לחלוטין פריטים מתיבות דואר.
כעת באפשרותך למחוק את תוצאות החיפוש:
Remove-ComplianceSearch -Identity ContentSearch_Report2022




