แลกเปลี่ยน 2010 Powershell คำสั่งเพื่อตรวจสอบว่ามีที่อยู่อีเมลในระบบ


12

ฉันกำลังมองหาคำสั่ง Exchange 2010 ที่จะทำสิ่งต่อไปนี้:

  1. ให้ที่อยู่อีเมล (มีคุณสมบัติครบถ้วนกับโดเมนและทั้งหมด) ตรวจสอบว่าที่อยู่อีเมลนั้นเชื่อมโยงกับกล่องจดหมายหรือกลุ่มในระบบ
  2. (เป็นการดีที่สุด) แสดงเอนทิตี้ของที่อยู่อีเมลนั้น

สิ่งนี้จะมีประโยชน์มากสำหรับฉันในการตรวจสอบการย้ายถิ่นของฉันและตรวจสอบว่าชื่อแทนทั้งหมดของเราถูกย้ายอย่างถูกต้อง

คำตอบ:


15

Get-Recipient -Identity user@domain.com

การดำเนินการนี้จะส่งคืนออบเจคต์ผู้รับสำหรับผู้ที่มีที่อยู่อีเมลที่กำหนด (รวมถึงชื่อแทน) เนื่องจากอีเมลได้รับการรับรองว่าไม่ซ้ำใครจึงไม่ควรส่งคืนมากกว่าหนึ่งบันทึก (ฉันเชื่อ)

Get-Recipient -ANR user

คุณสามารถใช้-ANRเพื่อค้นหาโดยใช้การแก้ปัญหาชื่อคลุมเครือ (เพื่อให้คุณสามารถพิมพ์ชื่อผู้ใช้ชื่อผู้ใช้ ฯลฯ ) ได้ แต่แม้ว่า ANR จะตรงกับที่อยู่อีเมลหลักของผู้ใช้ แต่จะไม่ตรงกับชื่อแทน SMTP อื่น ๆ ANR สามารถส่งคืนการแข่งขันได้หลายครั้ง (เพื่อให้แน่ใจว่ารหัสของคุณจัดการกับกรณีนี้)

Get-Mailboxไม่เพียงพอที่จะยืนยันว่าที่อยู่อีเมลไม่ซ้ำกันเนื่องจากจะไม่จำเป็นต้องส่งคืนผู้ติดต่อหรือบันทึกจากระบบภายนอกหรือระบบเดิม มันส่งกลับกล่องจดหมาย ... และในขณะที่กล่องจดหมายทั้งหมดมีที่อยู่อีเมลไม่ใช่ที่อยู่อีเมลทั้งหมดเป็นกล่องจดหมาย


สิ่งนี้ไม่ได้นำนามแฝงของกล่องจดหมายกลับมา
Brian Mitchell

1
นี่คือคำตอบที่เหมาะกับฉัน มันส่งคืนผู้รับที่ตรงกันทั้งคู่อย่างถูกต้องเมื่อค้นหาด้วยที่อยู่อีเมล SMTP หลักและเมื่อค้นหาด้วยที่อยู่อีเมล SMTP สำรอง
RSW

2
@BrianMitchell มันสามารถทำได้โดยสิ้นเชิงถ้าประปาเพื่อดูคุณสมบัติที่ต้องการ Get-Recipient user@domain.com | Select Name,EmailAddresses. โดยค่าเริ่มต้นมันก็จะแสดงและName RecipientType
blaughw

3

สิ่งนี้ควรทำเคล็ดลับ:

get-mailbox -an user@domain.com 

5
สิ่งนี้จะไม่ทำงานสำหรับบัญชีที่มีนามแฝง SMTP หลายรายการ เฉพาะที่อยู่อีเมลหลักเท่านั้นที่จะส่งคืนบันทึก นามแฝงจะไม่ส่งคืนสิ่งใด (ระบุว่าบัญชีนั้นมีเท็จ)
Myrddin Emrys

3
ไม่ทำงานสำหรับที่อยู่สำรองในกล่องจดหมาย

2

ฉันรู้ว่านี่เก่าไปหน่อย แต่เพิ่งแก้ไขปัญหาด้วยการเรียกใช้สิ่งต่อไปนี้:

Get-Mailbox | %{$_.EmailAddresses | ?{$_ -like "*<email address>*"}}
Get-DistributionGroup | %{$_.EmailAddresses | ?{$_ -like "*<email address>*"}}
Get-MailPublicFolder | %{$_.EmailAddresses | ?{$_ -like "*<email address>*"}}

หากมีสิ่งใดถูกส่งคืนโดยพวกเขาคนใดคนหนึ่งมันไม่จำเป็นต้องบอกฉันว่าอะไรที่บัญชีกำลังใช้งานอยู่ แต่ฉันก็สามารถมุ่งเน้นไปที่สามในนั้นส่งคืนบันทึกให้ดำดิ่งลึกลงไป หากไม่มีการส่งคืนแสดงว่าไม่มีการใช้งาน



-2

สิ่งต่อไปนี้ใช้ได้กับฉันแม้ว่าจะมีชื่อแทน:

get-recipient -filter {emailaddresses -like "*user@domain.com*"}

ส่งคืนชื่อผู้รับและประเภทด้วย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.