ค้นหาเว็บไซต์

ค้นหาที่อยู่ SMTP ที่หายไปด้วย PowerShell


ผู้ใช้ที่มีกล่องจดหมายใน Exchange Server ต้องมีการกำหนดค่าที่อยู่ SMTP เฉพาะ จะค้นหากล่องจดหมายที่ไม่มีที่อยู่ SMTP ใน Exchange ได้อย่างไร คำตอบอยู่ที่ PowerShell หากเราพบที่อยู่ SMTP ที่หายไป เราก็สามารถเพิ่มลงในกล่องจดหมายของผู้ใช้ได้ ในบทความนี้ คุณจะได้เรียนรู้วิธีค้นหาที่อยู่ SMTP ที่หายไปด้วย PowerShell

ค้นหาที่อยู่ SMTP ที่หายไปด้วย PowerShell

คุณสามารถลงชื่อเข้าใช้ Exchange Admin Center (EAC) เปิดกล่องจดหมายแบบหนึ่งต่อหนึ่ง และค้นหาที่อยู่ SMTP ที่หายไป อย่างไรก็ตาม ฉันไม่แนะนำให้ทำเช่นนั้น เว้นแต่คุณจะมีเวลามากและชอบที่จะใช้มันในลักษณะนั้น

คุณต้องการแสดงที่อยู่ SMTP ทั้งหมดใน Exchange Organisation หรือไม่ อ่านวิธีแสดงรายการที่อยู่ SMTP ทั้งหมดด้วย PowerShell »

หมายเหตุ: คำสั่งด้านล่างใช้ได้กับ Exchange Server ภายในองค์กรและ Exchange Online

เชื่อมต่อกับเครื่องมือการจัดการ Exchange ก่อนที่คุณจะรันคำสั่ง:

  • Exchange Server ภายในองค์กร: เรียกใช้ Exchange Management Shell ในฐานะผู้ดูแลระบบ

  • Exchange Online: เรียกใช้ PowerShell ในฐานะผู้ดูแลระบบและเชื่อมต่อกับ Exchange Online PowerShell

หมายเหตุ: เปลี่ยน รับกล่องจดหมาย เป็น รับผู้รับ ในคำสั่งเพื่อแสดงออบเจ็กต์ทั้งหมดในองค์กร ซึ่งจะได้รับกล่องจดหมาย กลุ่มการแจกจ่าย กลุ่มความปลอดภัย และผู้ติดต่อ

ค้นหาที่อยู่ SMTP ที่หายไปตามโดเมน

เรียกใช้ Exchange Management Shell ในฐานะผู้ดูแลระบบ เรียกใช้ cmdlet เพื่อแสดงรายการกล่องจดหมายที่มีโดเมนหายไป นานาน่ารู้คือมันจะค้นหาทั้งที่อยู่ SMTP หลักและที่อยู่ SMTP รองในกล่องจดหมายแต่ละกล่องเพื่อหาที่อยู่ SMTP ที่ขาดหายไป

[PS] C:\>Get-Mailbox -ResultSize Unlimited -Filter {EmailAddresses -notlike "*@alitajran.com"} | Sort-Object Name

Name                      Alias                ServerName       ProhibitSendQuota
----                      -----                ----------       -----------------
Amanda Morgan             amanda.morgan        ex01-2016        Unlimited
Anna Welch                anna.welch           ex01-2016        Unlimited

ค้นหาที่อยู่ SMTP ที่หายไปตามชื่อ

บางทีคุณอาจต้องการค้นหาชื่อแทนโดเมน คุณต้องเปลี่ยนแปลงอะไรเพื่อให้เป็นไปได้? เปลี่ยนโดเมน *@alitajran.com เป็นชื่อที่มีที่อยู่ SMTP ตัวอย่างเช่น *ทัชรัน* วิธีนี้จะค้นหาทุกสิ่งด้วยชื่อนั้นในฟิลด์ SMTP ทั้งหมด

[PS] C:\>Get-Mailbox -ResultSize Unlimited -Filter {EmailAddresses -notlike "*tajran*"} | Sort-Object Name

Name                      Alias                ServerName       ProhibitSendQuota
----                      -----                ----------       -----------------
Amanda Morgan             amanda.morgan        ex01-2016        Unlimited
Anna Welch                anna.welch           ex01-2016        Unlimited

รายการผลลัพธ์ข้อมูล

เพิ่มข้อมูลที่คุณต้องการลงใน Select-Object cmdlet วิธีนี้จะทำให้คุณมองเห็นกล่องจดหมายที่ไม่มีที่อยู่ SMTP ได้ดีขึ้น

[PS] C:\>Get-Mailbox -ResultSize Unlimited -Filter {EmailAddresses -notlike "*@alitajran.com"} | Select-Object DisplayName,PrimarySmtpAddress, @{Name="EmailAddresses";Expression={$_.EmailAddresses | Where-Object {$_ -clike "smtp*"}}} | Select-Object DisplayName, PrimarySMTPAddress, EmailAddresses | Sort-Object DisplayName

DisplayName   PrimarySmtpAddress      EmailAddresses
-----------   ------------------      --------------
Amanda Morgan Amanda.Morgan@exoip.com smtp:A.Morgan@exoip.com
Anna Welch    Anna.Welch@exoip.com

ปรับเอาต์พุตเพื่อให้ได้มุมมองที่สะอาดตายิ่งขึ้น

เพื่อให้ดูสะอาดตายิ่งขึ้น ให้ลบ smtp: ออกจากที่อยู่ SMTP รอง

[PS] C:\>Get-Mailbox -ResultSize Unlimited -Filter {EmailAddresses -notlike "*@alitajran.com"} | Select-Object DisplayName,PrimarySmtpAddress, @{Name="EmailAddresses";Expression={($_.EmailAddresses | Where-Object {$_ -clike "smtp*"} | ForEach-Object {$_ -replace "smtp:",""}) -join ","}} | Sort-Object DisplayName

DisplayName   PrimarySmtpAddress      EmailAddresses
-----------   ------------------      --------------
Amanda Morgan Amanda.Morgan@exoip.com A.Morgan@exoip.com
Anna Welch    Anna.Welch@exoip.com

ขั้นตอนสุดท้ายคือการส่งออกผลลัพธ์เป็นไฟล์ CSV

อ่านเพิ่มเติม: วิธีลบที่อยู่ SMTP รองจำนวนมากด้วย PowerShell »

ส่งออกเป็นไฟล์ CSV

ส่งออกกล่องจดหมายที่ไม่มีที่อยู่ SMTP เป็นไฟล์ CSV การดำเนินการนี้จะส่งออกไฟล์ CSV ไปที่ C:\temp\ อย่าลืมสร้างโฟลเดอร์ชั่วคราวบนไดรฟ์ C: หรือแก้ไขเส้นทางการส่งออก

[PS] C:\>Get-Mailbox -ResultSize Unlimited -Filter {EmailAddresses -notlike "*@alitajran.com"} | Select-Object DisplayName,PrimarySmtpAddress, @{Name="EmailAddresses";Expression={($_.EmailAddresses | Where-Object {$_ -clike "smtp*"} | ForEach-Object {$_ -replace "smtp:",""}) -join ","}} | Sort-Object DisplayName | Export-CSV "C:\temp\Missing_SMTP_Addresses.csv" -NoTypeInformation -Encoding UTF8

ไปที่เส้นทางใน File Explorer แล้วเปิดไฟล์ CSV ด้วยแอปพลิเคชันที่คุณชื่นชอบ ตัวอย่างเช่นกับ Microsoft Excel

ฉันหวังว่าบทความนี้จะช่วยคุณได้

จะทำอย่างไรถ้าคุณต้องการค้นหาที่อยู่ SMTP เฉพาะแทนที่จะเป็นที่อยู่ SMTP ที่หายไป อ่านเพิ่มเติม: ค้นหาที่อยู่ SMTP เฉพาะด้วย PowerShell »

บทสรุป

คุณได้เรียนรู้วิธีค้นหาที่อยู่ SMTP ที่หายไปด้วย PowerShell ใน Exchange Server เรียกใช้ cmdlet ใน PowerShell เพื่อรับรายการกล่องจดหมายที่ไม่มีที่อยู่ SMTP ปรับ Select-Object cmdlet ด้วยค่าที่คุณต้องการดู หลังจากนั้น ส่งออกรายการเป็นไฟล์ CSV และเปิดด้วยโปรแกรมดู/แก้ไข CSV ที่คุณชื่นชอบ

คุณสนุกกับบทความนี้หรือไม่? คุณอาจต้องการส่งออกรายการกล่องจดหมายเป็น CSV ใน Exchange อย่าลืมติดตามเราและแบ่งปันบทความนี้

บทความที่เกี่ยวข้อง