ลบรายการเมลออกจากกล่องจดหมาย Single Exchange โดยใช้ PowerShell | ตอนที่ 5#5
ในบทความนี้ เราจะตรวจสอบสถานการณ์ต่างๆ ของการใช้ Search-Mailbox cmdlet สำหรับการลบรายการจดหมายจากกล่องจดหมาย Single Exchange (การลบจำนวนมาก)
เชื่อมต่อกับ Exchange Online PowerShell
เพื่อให้สามารถเรียกใช้คำสั่ง PowerShell ที่ระบุในบทความปัจจุบัน คุณจะต้องเชื่อมต่อกับ Exchange Online PowerShell
เริ่ม Windows PowerShell ในฐานะผู้ดูแลระบบ และเรียกใช้ cmdlet Connect-ExchangeOnline
Connect-ExchangeOnlineก่อนที่คุณจะเรียกใช้คำสั่ง PowerShell ที่เราตรวจสอบในบทความนี้ เราต้องเน้นย้ำว่าคุณควรระมัดระวังในการใช้ cmdlet Search-Mailbox PowerShell นี้ เนื่องจาก cmdlet ของการดำเนินการ Hard Delete ของรายการจดหมาย
คุณควรมีเหตุผลที่ดีในการใช้ตัวเลือกนี้ และเราขอแนะนำให้คุณทำความคุ้นเคยกับไวยากรณ์ของ PowerShell และเข้าใจคำค้นหาที่คุณใช้ เช่น เกิดอะไรขึ้นกับเมลที่ถูกลบ กล่องจดหมาย Exchange ใดบ้างที่ได้รับผลกระทบ และอื่นๆ
ตรรกะของ Search-Mailbox cmdlet ที่เกี่ยวข้องกับการลบรายการเมล
เนื่องจากเราตัดสินใจว่าเราจะต้องใช้ Search-Mailbox cmdlet เพื่อลบรายการอีเมล จึงมีสถานการณ์หลักสองประการที่เราสามารถเลือกได้:
ตัวเลือกที่ 1 - ลบรายการเมลออกจากกล่องจดหมายต้นทางโดยไม่บันทึกสำเนาของรายการเมลที่ถูกลบ
ในสถานการณ์นี้ เราต้องการลบรายการเมลเฉพาะออกจาก กล่องจดหมายต้นทาง (รายการเมลที่ตอบคำค้นหาในขอบเขตตัวกรอง) โดยไม่บันทึกสำเนาใด ๆ ของรายการที่ถูกลบเหล่านี้ รายการจดหมาย
ในกรณีนี้ เราใช้ไวยากรณ์คำสั่ง PowerShell โดยไม่ต้อง ให้ข้อมูลเกี่ยวกับ กล่องจดหมายเป้าหมาย + โฟลเดอร์เป้าหมาย
ตัวอย่างของไวยากรณ์คำสั่ง PowerShell อาจเป็น:
Search-Mailbox "Source Mailbox" -DeleteContent -Forceตัวเลือก 2 - ลบรายการเมลออกจากกล่องจดหมายต้นทาง + บันทึกสำเนาของรายการเมลที่ถูกลบ
ในสถานการณ์นี้ เราต้องการลบรายการเมลเฉพาะออกจาก กล่องจดหมายต้นทาง (รายการเมลที่ตอบคำค้นหาในขอบเขตตัวกรอง) แต่บันทึกสำเนาของรายการเมลที่ถูกลบไว้ใน กล่องจดหมายเป้าหมาย (ใน โฟลเดอร์เป้าหมาย)
ในกรณีนี้ เราใช้ไวยากรณ์คำสั่ง PowerShell + การให้ข้อมูลเกี่ยวกับ กล่องจดหมายเป้าหมาย + โฟลเดอร์เป้าหมาย
ตัวอย่างของไวยากรณ์คำสั่ง PowerShell อาจเป็น:
Search-Mailbox "Source Mailbox" -TargetMailbox "Target mailbox" -TargetFolder "Target Folder" -DeleteContent -Forceตัวเลือก 3 - ทำการค้นหา - ค้นหารายการเมลที่เรากำลังจะลบออกจากกล่องจดหมายต้นทาง + สร้างรายงาน (บันทึก)
ในสถานการณ์นี้ เราต้องการสร้างรายงาน (ไฟล์บันทึก) ซึ่งรวมถึงรายละเอียดเกี่ยวกับรายการเมลที่เรา "กำลังจะลบแต่ไม่ได้ดำเนินการ" การกระทำ " นอกเหนือจากการสร้างรายงาน
หากต้องการสร้างเฉพาะรายงานโดยไม่ต้องดำเนินการใดๆ เราใช้พารามิเตอร์ PowerShell -LogOnly
คำแนะนำของฉันคือให้พิจารณาใช้ตัวเลือกนี้ก่อนที่เราจะเริ่มต้นด้วยการลบจริง กล่าวอีกนัยหนึ่ง - ปลอดภัยดีกว่าขออภัย!
หลังจากที่เราดูข้อมูลที่ปรากฏในรายงาน (Log) และหลังจากที่เรา “อนุมัติ” ให้ลบรายการเมลเฉพาะแล้วให้กลับไปใช้ตัวเลือกใดตัวเลือกหนึ่งที่กล่าวมาข้างต้น (ลบรายการเมลโดยไม่บันทึกสำเนาหรือบันทึก สำเนาของรายการเมลที่ถูกลบใน กล่องจดหมายเป้าหมาย)
ในกรณีนี้ เราใช้ไวยากรณ์คำสั่ง PowerShell + การให้ข้อมูลเกี่ยวกับ กล่องจดหมายเป้าหมาย + โฟลเดอร์เป้าหมาย ที่จะ “จัดเก็บ ” ไฟล์รายงาน .
ตัวอย่างของไวยากรณ์คำสั่ง PowerShell อาจเป็น:
Search-Mailbox "Source Mailbox" -TargetMailbox "Target mailbox" -TargetFolder "Target Folder" -LogOnlyคำอธิบายสถานการณ์
ในตัวอย่างต่อไปนี้ ฉันชอบที่จะอยู่ในด้านความปลอดภัย ด้วยเหตุนี้ ตัวอย่างคำสั่ง PowerShell ทั้งหมดจะขึ้นอยู่กับสถานการณ์ที่เราบันทึกสำเนาของรายการเมลที่ถูกลบใน “กล่องจดหมายเป้าหมาย” ในกรณีที่คุณต้องการหลีกเลี่ยงตัวเลือกนี้ คุณสามารถลบส่วนที่เกี่ยวกับ กล่องจดหมายเป้าหมาย + โฟลเดอร์เป้าหมาย ออกจากไวยากรณ์คำสั่ง PowerShell
เป้าหมาย
เป้าหมายที่เราพยายามบรรลุคือ:
- ทำการค้นหาในกล่องจดหมาย Exchange เฉพาะ (Bob กล่องจดหมาย) การค้นหาจะดำเนินการโดยการกำหนด ข้อความค้นหา เฉพาะ (เกณฑ์การค้นหา) ซึ่งจะช่วยให้เราค้นหารายการอีเมลเฉพาะที่ตอบ ข้อความค้นหา
- เราต้องการที่จะ ลบ รายการเมลทั้งหมดที่ปรากฏใน ผลการค้นหา
- ผลการค้นหา จะถูกคัดลอกไปยัง กล่องจดหมายเป้าหมาย และบันทึกไว้ในโฟลเดอร์เฉพาะ (โฟลเดอร์เป้าหมาย)
- นอกจากนี้ เราต้องการสร้างรายงานโดยละเอียด (บันทึก) เกี่ยวกับแต่ละรายการอีเมลที่ปรากฏใน ผลการค้นหา และที่ถูกลบ (ไฟล์ Log\Report จะถูกบันทึกไว้ใน เป้าหมาย โฟลเดอร์)
กล่องจดหมายต้นทาง + กล่องจดหมายเป้าหมาย (และโฟลเดอร์เป้าหมาย)
- กล่องจดหมายต้นทาง (กล่องจดหมายที่เราดำเนินการค้นหา) คือกล่องจดหมาย ของ Bob
- กล่องจดหมายเป้าหมายที่เราใช้สำหรับจัดเก็บผลการค้นหา (รายการอีเมล) เป็นของ Adele
- ชื่อ โฟลเดอร์เป้าหมาย จะเป็น - ผลการค้นหา Bob -สำรอง - รายการเมลที่ถูกลบ
ขอบเขตการค้นหากล่องจดหมาย
ตามค่าเริ่มต้น Search-Mailbox cmdlet จะทำการค้นหาในกล่องจดหมายต้นทางที่มี "ช่องว่างในกล่องจดหมาย" ต่อไปนี้:
กล่องจดหมายหลัก
- ค้นหากล่องจดหมาย cmdlet จะทำการค้นหาที่เกี่ยวข้องกับโฟลเดอร์และโฟลเดอร์ย่อยทั้งหมดในกล่องจดหมายหลัก
- โฟลเดอร์เมลการกู้คืน - โดยค่าเริ่มต้น cmdlet Search-Mailbox จะค้นหารายการเมลที่จัดเก็บไว้ในโฟลเดอร์เมลการกู้คืน (Dumpster) ด้วย
เก็บกล่องจดหมาย
ในกรณีที่กล่องจดหมายต้นทางมีกล่องจดหมายเก็บถาวร:
- ค้นหากล่องจดหมาย cmdlet จะทำการค้นหาที่เกี่ยวข้องกับโฟลเดอร์และโฟลเดอร์ย่อยทั้งหมดในกล่องจดหมายเก็บถาวร
- โฟลเดอร์เมลการกู้คืน - โดยค่าเริ่มต้น cmdlet Search-Mailbox จะค้นหารายการเมลที่เก็บไว้ในโฟลเดอร์เมลการกู้คืนที่เก็บถาวรของกล่องจดหมาย (Dumpster)
การใช้ Search-Mailbox เพื่อลบรายการเมล | พารามิเตอร์ PowerShell
ตัวเลือก "ใช้งานอยู่" ของการลบรายการเมลโดยใช้ Search-Mailbox cmdlet เราจำเป็นต้องเพิ่มพารามิเตอร์คำสั่ง PowerShell ต่อไปนี้:
1. ลบเนื้อหา
พารามิเตอร์ “DeleteContent ” นี้สั่งให้ Search-Mailbox cmdlet “ค้นหาและทำลาย” รายการเมลที่ตรงกับเกณฑ์การค้นหา
<แข็งแกร่ง>2. บังคับ
พารามิเตอร์ “บังคับ ” นี้ไม่ใช่พารามิเตอร์บังคับ วัตถุประสงค์ของพารามิเตอร์นี้คือ เพื่อป้องกันไม่ให้ Search-Mailbox cmdlet ขอให้เรายืนยันรายการเมลแต่ละรายการที่จะถูกลบ
ในแผนภาพต่อไปนี้ เราจะเห็นพารามิเตอร์เพิ่มเติมที่ "เปลี่ยน" Search-Mailbox cmdlet จากเครื่องมือที่ค้นหาและค้นหาข้อมูล (รายการเมล) ให้เป็นอาวุธร้ายแรงที่ทำลายเมล (Hard Delete) รายการ!
ใช้ Search-Mailbox เพื่อทำการค้นหา
ค้นหาและลบรายการเมล + บันทึกสำเนารายการเมล | ลบรายการเมลออกจากโฟลเดอร์เมลการกู้คืน (Dumpster)
ในตัวอย่างนี้ เราใช้ Search-Mailbox cmdlet โดยไม่มี "ตัวกรอง" หรือตัวกรองคำค้นหา
แต่เราจะใช้พารามิเตอร์ PowerShell SearchDumpsterOnly แทนเพื่อจำกัดการค้นหา (และการลบรายการเมล) เฉพาะรายการเมลที่จัดเก็บไว้ในโฟลเดอร์เมลการกู้คืน (Dumpster)
ในสถานการณ์นี้ เป้าหมายของเราคือการลบรายการเมลที่ถูกลบแบบ Soft ทั้งหมดที่จัดเก็บไว้ในโฟลเดอร์เมลการกู้คืน (Dumpster) + บันทึกสำเนารายการเมลทั้งหมดที่ถูกลบจากกล่องจดหมายต้นทางไปยังกล่องจดหมายเป้าหมาย
ตามที่กล่าวไว้ Search-Mailbox cmdlet ไม่สามารถลบรายการจดหมายที่ถูกลบแบบถาวรซึ่งจัดเก็บไว้ในโฟลเดอร์ย่อย Purges (โฟลเดอร์ย่อยของโฟลเดอร์จดหมายการกู้คืน)
ค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | โฟลเดอร์เมลการกู้คืนขอบเขตการค้นหากล่องจดหมาย (Dumpster)
ไวยากรณ์คำสั่ง PowerShell:
Search-Mailbox "Source Mailbox" -SearchDumpsterOnly -TargetMailbox "Destination mailbox" -TargetFolder "Folder" -DeleteContent -Force -LogLevel Fullตัวอย่างคำสั่ง PowerShell:
Search-Mailbox "Bob" -SearchDumpsterOnly -TargetMailbox "Adele" -TargetFolder "Search Results - Bob" -DeleteContent -Force -LogLevel Fullค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | ค้นหาตัวกรองคำค้นหา - ประเภทรายการจดหมายเฉพาะ
ในสถานการณ์สมมตินี้ เราต้องการ:
- ค้นหา (ค้นหา) เฉพาะรายการเมลบางประเภท (เช่น ปฏิทินหรือรายการเมลผู้ติดต่อ) ใน กล่องจดหมายต้นทาง เดียว
- ลบรายการเมลเหล่านี้
- บันทึกสำเนาของรายการเมลที่ถูกลบในกล่องจดหมายเป้าหมาย
ค้นหา + บันทึกสำเนาของรายการเมล | ตัวกรองคำค้นหา - รายการปฏิทิน
ค้นหา + ลบรายการเมลบางประเภท - รายการ ปฏิทิน
ไวยากรณ์คำสั่ง PowerShell:
Search-Mailbox "Source Mailbox" -SearchQuery "Kind:meetings" -TargetMailbox "Destination mailbox" -TargetFolder "Folder" -DeleteContent -Force -LogLevel Fullตัวอย่างคำสั่ง PowerShell:
Search-Mailbox "Bob" -SearchQuery "Kind:meetings" -TargetMailbox "Adele" -TargetFolder "Search Results - Bob" -DeleteContent -Force -LogLevel Fullค้นหา + บันทึกสำเนาของรายการเมล | คำค้นหา - รายการผู้ติดต่อ
ค้นหา + ลบรายการเมลบางประเภท - รายการ รายชื่อผู้ติดต่อ
ไวยากรณ์คำสั่ง PowerShell:
Search-Mailbox "Source Mailbox" -SearchQuery "Kind:contacts" -TargetMailbox "Destination mailbox" -TargetFolder "Folder" -DeleteContent -Force -LogLevel Fullตัวอย่างคำสั่ง PowerShell:
Search-Mailbox "Bob" -SearchQuery "Kind:contacts" -TargetMailbox "Adele" -TargetFolder "Search Results - Bob" -DeleteContent -Force -LogLevel Fullหมายเหตุ: ตามค่าเริ่มต้น หากไม่ได้ระบุไว้ Search-Mailbox cmdlet จะค้นหาข้อความทุกประเภท
เมื่อใช้ตัวเลือกตัวกรองการค้นหา ชนิด ค่าที่ถูกต้องอาจเป็นค่าใดค่าหนึ่งต่อไปนี้:
- อีเมล
- การประชุม
- งาน
- หมายเหตุ
- เอกสาร
- วารสาร
- รายชื่อผู้ติดต่อ
- ฉัน
ค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | ตัวกรองคำค้นหา - สตริงข้อความ
ในส่วนนี้ เราใช้ คำค้นหา ที่จะค้นหารายการเมลที่มีสตริงข้อความเฉพาะ
หมายเหตุทั่วไป - เนื่องจากเราใช้เครื่องหมายคำพูด การค้นหาจะดึงเฉพาะผลลัพธ์ที่คำทั้งหมดในสตริงข้อความที่เรากำหนดปรากฏขึ้น
ตัวอย่างเช่น ในสถานการณ์ของเรา เรามองหาสตริงข้อความ: “การประชุมในนิวยอร์ก”
รายการอีเมลที่มีคำว่า “นิวยอร์ก ” หรือ “การประชุม ” จะไม่ปรากฏในผลการค้นหา
เฉพาะรายการเมลที่มี วลีข้อความ ทั้งหมดที่ปรากฏภายในเครื่องหมายคำพูดเท่านั้นที่จะถือเป็น "รายการเมลที่ถูกต้อง" ที่ตอบ คำค้นหา (วลีหรือคำหลักที่แน่นอนใน เรื่องของรายการ)
ค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | คำค้นหา - รายการเมลที่มีสตริงข้อความในเมล SUBJECT
ค้นหา + ลบรายการอีเมลด้วยสตริงข้อความเฉพาะที่ปรากฏในข้อความอีเมล บรรทัดหัวเรื่อง
ไวยากรณ์คำสั่ง PowerShell:
Search-Mailbox "Source Mailbox" -SearchQuery Subject:"Text String" -TargetMailbox "Destination mailbox" -TargetFolder "Folder" -LogLevel Fullตัวอย่างคำสั่ง PowerShell:
Search-Mailbox "Bob" -SearchQuery Subject:"A meeting in New York" -TargetMailbox "Adele" -TargetFolder "Search Results - Bob" -DeleteContent -Force -LogLevel Fullค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | คำค้นหา - รายการเมลที่มีสตริงข้อความในเมล BODY
ค้นหา + ลบรายการเมลด้วยสตริงข้อความเฉพาะที่ปรากฏในอีเมล Body
ไวยากรณ์คำสั่ง PowerShell:
Search-Mailbox "Source Mailbox" -SearchQuery body:"Text String" -TargetMailbox "Destination mailbox" -TargetFolder "Folder" -DeleteContent -Force -LogLevel Fullตัวอย่างคำสั่ง PowerShell:
Search-Mailbox "Bob" -SearchQuery Subject:"A meeting in New York" -TargetMailbox "Adele" -TargetFolder "Search Results - Bob" -DeleteContent -Force -LogLevel Fullค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | คำค้นหา - รายการเมลที่มีสตริงข้อความในเมล BODY หรือหัวเรื่องเมล
ค้นหา + ลบรายการอีเมลด้วยสตริงข้อความเฉพาะที่ปรากฏในข้อความอีเมล บรรทัดหัวเรื่อง หรือ หัวเรื่องเมล.
ไวยากรณ์คำสั่ง PowerShell:
Search-Mailbox "Source Mailbox" -SearchQuery "Text String" -TargetMailbox "Destination mailbox" -TargetFolder "Folder" -DeleteContent -Force -LogLevel Fullตัวอย่างคำสั่ง PowerShell:
Search-Mailbox "Bob" -SearchQuery "A meeting in New York" -TargetMailbox "Adele" -TargetFolder "Search Results - Bob" -DeleteContent -Force -LogLevel Fullไวยากรณ์คำสั่ง PowerShell เพิ่มเติมที่เราสามารถใช้เพื่อดำเนินการค้นหาที่มีเกณฑ์การค้นหาสองประเภทคือ:
Search-Mailbox "Bob" -SearchQuery {Subject:"A meeting in New York" OR body:"A meeting in New York"} -TargetMailbox "Adele" -TargetFolder "Search Results - Bob" -DeleteContent -Force -LogLevel Fullค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | ค้นหาตัวกรองคำค้นหา - วันที่หรือช่วงวันที่ที่ระบุ
ข้อมูลทั่วไปเกี่ยวกับหัวข้อ “รูปแบบวันที่และวันที่”
หัวเรื่องของรูปแบบวันที่ที่เราใช้ในการสืบค้น Search-Mailbox นั้นยุ่งยากเล็กน้อย เนื่องจากรูปแบบวันที่ได้รับผลกระทบจากรูปแบบวันที่ของ Windows OS, รูปแบบวันที่ของกล่องจดหมาย Exchange Online เป็นต้น
กรณีที่ 1: โดยส่วนใหญ่ รูปแบบวันที่ที่คุณต้องใช้ในคำค้นหาคือรูปแบบวันที่ของ Windows OS
กรณีที่ 2: เมื่อใช้รูปแบบวันที่ในการสืบค้น Search-Mailbox จะต้องอยู่ในรูปแบบที่สอดคล้องกับการตั้งค่าภูมิภาคของเซิร์ฟเวอร์ Exchange
ในกรณีที่คุณได้รับข้อผิดพลาด เช่น “ตัวแยกวิเคราะห์ KQL มีข้อยกเว้น” ให้ใช้ “ชื่อเดือน” แทนรูปแบบของ “หมายเลขเดือน”
เช่น แทนที่จะใช้รูปแบบวันที่ - 21/07/2017 ให้ใช้รูปแบบต่อไปนี้ - 02/กรกฎาคม/2017
ค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | คำค้นหา - อีเมลที่ส่งในวันที่ระบุ
ค้นหา + ลบรายการเมลด้วย ส่ง ในวันที่ วันที่ที่ระบุ
ไวยากรณ์คำสั่ง PowerShell:
Search-Mailbox "Source Mailbox" -SearchQuery sent:mm/dd/yyyy -TargetMailbox "Destination mailbox" -TargetFolder "Target Folder" -DeleteContent -Force -LogLevel Fullตัวอย่างคำสั่ง PowerShell:
Search-Mailbox "Bob" -SearchQuery sent:21/07/2017 -TargetMailbox "Adele -TargetFolder "Search Results - Bob" -DeleteContent -Force -LogLevel Fullค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | คำค้นหา - อีเมลที่ส่งในช่วงวันที่ที่ระบุ
ค้นหา + ลบรายการเมลด้วย ส่ง ใน ช่วงวันที่ที่ระบุ
ไวยากรณ์คำสั่ง PowerShell:
Search-Mailbox "Source Mailbox" -SearchQuery {sent:mm/dd/yyyy..mm/dd/yyyy} -TargetMailbox "Target mailbox" -TargetFolder "Target Folder" -DeleteContent -Force -LogLevel Fullตัวอย่างคำสั่ง PowerShell:
Search-Mailbox "Bob" -SearchQuery {sent:21/06/2017..07/21/2017} -TargetMailbox "Adele" -TargetFolder "Search Results - Bob" -DeleteContent -Force -LogLevel Fullค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | คำค้นหา - อีเมลที่ได้รับในช่วงวันที่ที่ระบุ
ค้นหา + ลบรายการเมลที่ ได้รับ ในช่วง ช่วงวันที่ที่ระบุ
ไวยากรณ์คำสั่ง PowerShell:
Search-Mailbox "Source Mailbox" -SearchQuery {Received:mm/dd/yyyy..mm/dd/yyyy} -TargetMailbox "Target mailbox" -TargetFolder "Target Folder" -DeleteContent -Force -LogLevel Fullตัวอย่างคำสั่ง PowerShell:
Search-Mailbox "Bob" -SearchQuery {Received:21/06/2017..21/07/2017} -TargetMailbox "Adele" -TargetFolder "Search Results - Bob" -DeleteContent -Force -LogLevel Fullค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | คำค้นหา - อีเมลที่ส่งในวันที่ระบุ + อีเมลที่ได้รับในวันที่ที่ระบุ
ค้นหา + ลบรายการเมลที่ ส่ง หรือ ได้รับ ใน ช่วงวันที่เฉพาะ
ไวยากรณ์คำสั่ง PowerShell:
Search-Mailbox "Source Mailbox" -SearchQuery {sent:mm/dd/yyyy OR Received: mm/dd/yyyy} -TargetMailbox "Destination mailbox" -TargetFolder "Target Folder" -DeleteContent -Force -LogLevel Fullตัวอย่างคำสั่ง PowerShell:
Search-Mailbox "Bob" -SearchQuery {sent:30/07/2017 OR Received:30/07/2017}-TargetMailbox "Adele" -TargetFolder "Search Results - Bob" -DeleteContent -Force -LogLevel Fullค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | ค้นหาตัวกรองคำค้นหา - ผู้ส่งหรือผู้รับ
ในส่วนนี้ เราต้องการค้นหา + ลบรายการเมลที่ส่งจากผู้ส่งรายใดรายหนึ่งหรือถึงผู้รับรายใดรายหนึ่ง
ค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | ขอบเขตตัวกรอง - อีเมลที่ส่งโดยผู้ส่งที่ระบุ
ค้นหา + ลบรายการเมลที่ ส่ง จาก ผู้ส่ง เฉพาะ (เมล FROM สนาม).
ไวยากรณ์คำสั่ง PowerShell:
Search-Mailbox "Source Mailbox" -SearchQuery from:"E-mail address" -TargetMailbox "Target mailbox" -TargetFolder "Target Folder" -LogLevel Fullตัวอย่างคำสั่ง PowerShell:
Search-Mailbox "Bob" -SearchQuery from:"John@o365info.com" -TargetMailbox "Adele" -TargetFolder "Search Results - Bob" -DeleteContent -Force -LogLevel Fullค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | ขอบเขตตัวกรอง - อีเมลที่ส่งถึงผู้รับเฉพาะ
ค้นหา + ลบรายการเมลที่ได้รับจากผู้รับที่ระบุ (ส่งไปยังผู้รับที่ระบุ - ช่องเมล TO)
ไวยากรณ์คำสั่ง PowerShell:
Search-Mailbox "Source Mailbox" -SearchQuery to:"E-mail address" -TargetMailbox "Target mailbox" -TargetFolder "Target Folder" -DeleteContent -Force -LogLevel Fullตัวอย่างคำสั่ง PowerShell:
Search-Mailbox "Bob" -SearchQuery to:"Alice@outlook.com" -TargetMailbox "Adele" -TargetFolder "Search Results - Bob" -DeleteContent -Force -LogLevel Fullค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | ตัวกรองคำค้นหา - ไฟล์แนบอีเมล
ในส่วนนี้เราต้องการค้นหา + ลบรายการเมลที่มีไฟล์แนบ
ค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | ขอบเขตตัวกรอง - อีเมลที่มีชื่อไฟล์แนบเฉพาะ
ค้นหา + ลบรายการเมลที่มีไฟล์แนบพร้อมนามสกุลไฟล์เฉพาะ
ไวยากรณ์คำสั่ง PowerShell:
Search-Mailbox "Source Mailbox" -SearchQuery attachment:"Attachment file name" -TargetMailbox "Target mailbox" -TargetFolder "Target Folder" -DeleteContent -Force -LogLevel Fullตัวอย่างคำสั่ง PowerShell:
Search-Mailbox "Bob" -SearchQuery attachment:"Customer.pdf" -TargetMailbox "Adele" -TargetFolder "Search Results - Bob" -DeleteContent -Force -LogLevel Fullค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | ขอบเขตตัวกรอง - ประเภทไฟล์แนบเฉพาะ (ส่วนต่อท้าย)
ค้นหา + ลบรายการเมลที่มีไฟล์แนบพร้อมส่วนต่อท้ายชื่อไฟล์เฉพาะ
ไวยากรณ์คำสั่ง PowerShell:
Search-Mailbox "Source Mailbox" -SearchQuery {Attachment -like "*.suffix"} -TargetMailbox "Target mailbox" -TargetFolder "Target Folder" -DeleteContent -Force -LogLevel Fullตัวอย่างคำสั่ง PowerShell:
Search-Mailbox "Bob" -SearchQuery {Attachment -like "*.PDF"} -TargetMailbox "Adele" -TargetFolder "Search Results - Bob" -DeleteContent -Force -LogLevel Fullค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | ขอบเขตตัวกรอง - อีเมลพร้อมไฟล์แนบ
ค้นหา + ลบรายการเมลที่มีไฟล์แนบ
ไวยากรณ์คำสั่ง PowerShell:
Search-Mailbox "Source Mailbox" -SearchQuery {HasAttachment -eq $true} -TargetMailbox "Target mailbox" -TargetFolder "Target Folder" -DeleteContent -Force -LogLevel Fullตัวอย่างคำสั่ง PowerShell:
Search-Mailbox "Bob" -SearchQuery -SearchQuery {HasAttachment -eq $true} -TargetMailbox "Adele" -TargetFolder "Search Results - Bob" -DeleteContent -Force -LogLevel Fullค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | ตัวกรองคำค้นหา - คำค้นหาเพิ่มเติม
ค้นหา + ลบรายการอีเมลว่าขนาดของรายการนั้น "ใหญ่กว่า" (มากกว่า) มากกว่าขนาดที่ระบุ
ค้นหาและลบรายการเมล + บันทึกสำเนาของรายการเมล | ขอบเขตตัวกรอง - รายการอีเมลมีขนาดใหญ่กว่า X MB
ไวยากรณ์คำสั่ง PowerShell:
Search-Mailbox "Source Mailbox" -SearchQuery {Size -gt <size in KB or MB>} -TargetMailbox "Target mailbox" -TargetFolder "Target Folder" -LogLevel Fullตัวอย่างคำสั่ง PowerShell:
Search-Mailbox "Bob" -SearchQuery -SearchQuery {Size -gt 5MB} -TargetMailbox "Adele" -TargetFolder "Search Results - Bob" -DeleteContent -Force -LogLevel Fullค้นหากล่องจดหมาย | ขอบเขตการค้นหากล่องจดหมาย| โฟลเดอร์จดหมายกู้คืน (ถังขยะ) และกล่องจดหมายเก็บถาวร
ในส่วนต่อไปนี้ ฉันต้องการทบทวนหัวข้อ "ขอบเขตการค้นหากล่องจดหมาย" โดยย่อ
ตามที่กล่าวไว้ ค้นหากล่องจดหมาย cmdlet จะดำเนินการตามการค้นหาเริ่มต้นในตำแหน่งที่ตั้งกล่องจดหมายต่อไปนี้ทั้งหมด:
- กล่องจดหมายหลัก
- กล่องจดหมายหลัก - โฟลเดอร์เมลการกู้คืน (Dumpster)
- เก็บกล่องจดหมาย
- กล่องจดหมายเก็บถาวร - โฟลเดอร์เมลการกู้คืน (Dumpster)
Search-Mailbox cmdlet ช่วยให้เราสามารถกำหนดขอบเขตการค้นหากล่องจดหมายเฉพาะ หรือยกเว้นขอบเขตกล่องจดหมายเฉพาะจากผลการค้นหา
โฟลเดอร์เมลการกู้คืนขอบเขตกล่องจดหมาย (Dumpster)
ข้อดีที่โดดเด่นที่สุดประการหนึ่งของ Search-Mailbox cmdlets คือความสามารถที่ผู้ดูแลระบบ Exchange สามารถดู (ค้นหา) เนื้อหาของโฟลเดอร์อีเมลการกู้คืน (Dumpster) และ "ดึงข้อมูล" สำเนา ของรายการเมล Soft Deleted + Hard Deleted ที่จัดเก็บไว้ในโฟลเดอร์เมลการกู้คืน
ตามค่าเริ่มต้น cmdlets ค้นหากล่องจดหมาย จะทำการค้นหาในกล่องจดหมายหลัก + ในโฟลเดอร์อีเมลการกู้คืน (Dumpster)
ตัวอย่างเช่น ในกรณีที่เราไม่ได้กำหนดตัวกรองขอบเขตกล่องจดหมายเฉพาะ งานค้นหาจะรวมพื้นที่กล่องจดหมายหลัก + โฟลเดอร์อีเมลการกู้คืน (Dumpster)
Search-Mailbox "Source Mailbox" -TargetMailbox "Target mailbox" -TargetFolder "Target Folder" -LogLevel Fullไม่รวมการค้นหาโฟลเดอร์จดหมายกู้คืน (ถังขยะ)
ในกรณีที่เราต้องการแยกโฟลเดอร์อีเมลการกู้คืน (Dumpster) ออกจากการค้นหา เราสามารถใช้พารามิเตอร์ SearchDumpster และตั้งค่าสวิตช์เป็น $False เช่น -SearchDumpster:$false.
Search-Mailbox "Source Mailbox" -TargetMailbox "Target mailbox" -TargetFolder "Target Folder" -SearchDumpster:$false -LogLevel Fullค้นหาถังขยะเท่านั้น
ในกรณีที่เราต้องการดำเนินการค้นหาเฉพาะในโฟลเดอร์เมลการกู้คืน (Dumpster) เราสามารถใช้พารามิเตอร์ -SearchDumpsterOnly ซึ่งระบุว่าจะค้นหาเฉพาะโฟลเดอร์ Recoverable Items ของกล่องจดหมายที่ระบุเท่านั้น
Search-Mailbox "Source Mailbox" -TargetMailbox "Target mailbox" -TargetFolder "Target Folder" -SearchDumpsterOnly -LogLevel Fullขอบเขตกล่องจดหมายเก็บถาวร
ตามค่าเริ่มต้น ในกรณีที่กล่องจดหมาย Exchange เฉพาะมีไฟล์เก็บถาวร ระบบจะค้นหาไฟล์เก็บถาวรเสมอ
หากต้องการแยก Archive ออกจากการค้นหา ให้ใช้พารามิเตอร์ DoNotIncludeArchive
Search-Mailbox "Source Mailbox" -TargetMailbox "Target mailbox" -TargetFolder "Target Folder" -DoNotIncludeArchive -LogLevel Fullการเขียนตัวกรองการค้นหาขั้นสูง/แบบรวม
ส่วนเพิ่มเติมที่ฉันอยากจะพูดถึงโดยย่อคือเรื่องของการกำหนดคำค้นหาขั้นสูงหรือซับซ้อนยิ่งขึ้นที่รวม "ตัวกรอง" หรือเงื่อนไขการค้นหาตั้งแต่สองรายการขึ้นไป
ในการกำหนดตัวกรองตั้งแต่สองตัวขึ้นไป เราสามารถใช้ตัวดำเนินการเชิงตรรกะ เช่น "OR", "AND" และอื่นๆ
ในแผนภาพต่อไปนี้ เราจะเห็นตัวอย่างไวยากรณ์ที่เราใช้เพื่อกำหนดคำค้นหาขั้นสูงยิ่งขึ้น
ตัวอย่างที่ 1
ค้นหารายการเมลทั้งหมดที่ตอบเกณฑ์การค้นหาต่อไปนี้:
รายการเมลที่มีไฟล์แนบ + นอกจากนี้ หัวข้อเมลคือ “ทดสอบ ”
Get-Mailbox -ResultSize Unlimited | Search-Mailbox -SearchQuery {HasAttachment -eq $true and subject:Test} -TargetMailbox "Target mailbox" -TargetFolder "Target Folder"ตัวอย่างที่ 2
ค้นหารายการเมลทั้งหมดที่ตอบเกณฑ์การค้นหาต่อไปนี้:
รายการเมลใน เมล หรือ ปฏิทิน
Get-Mailbox -ResultSize Unlimited | Search-Mailbox -SearchQuery {kind:email OR kind:meetings} -TargetMailbox "Target mailbox" -TargetFolder "Target Folder"ตัวอย่างที่ 3
ค้นหารายการเมลทั้งหมดที่ตอบเกณฑ์การค้นหาต่อไปนี้:
รายการเมลที่มีหัวเรื่อง ทดสอบ + ส่งจาก john@o365info.com + ส่งในวันที่ระบุ 30/07/2017
Get-Mailbox -ResultSize Unlimited | Search-Mailbox -SearchQuery {Subject:"Test" AND From:"john@o365info.com" AND Sent:"30/07/2017"} -TargetMailbox "Target mailbox" -TargetFolder "Target Folder"


