קבלת כל כתובות ה- SMTP (דואר אלקטרוני) באמצעות PowerShell ב- Exchange
מעת לעת, ייתכן שיהיה עליך לייצא את הרשימה המלאה של כתובות דואר אלקטרוני בארגון Exchange שלך. במאמר זה נראה כיצד להשיג ולייצא את כל כתובות ה- SMTP שהוקצו לקובץ CSV ב- Exchange Server או Microsoft 365 (Exchange Online) באמצעות PowerShell.
התחבר לארגון Exchange שלך:
באפשרותך להשתמש במודול מעטפת ניהול Exchange (EMS) כדי לנהל שרת Exchange מקומי, או להתחבר ל- Exchange מרחוק ממסוף PowerShell רגיל;
השתמש במודול Exchange Online PowerShell (EXO) כדי לחבר דייר Microsoft 365. באפשרותך להשתמש באימות מבוסס אישור כדי להיכנס ל- Exchange Online מתוך PowerShell.
כדי להציג את כל כתובות ה- SMTP הראשיות והנוספות עבור תיבת דואר ספציפית של Exchange, הפעל פקודה זו:
Get-Mailbox testmax |Select-Object DisplayName,PrimarySmtpAddress,EmailAddresses|fl
ה
SMTPכתובת באותיות רישיות מכילה את כתובת הדואר האלקטרוני הראשית
האותיות הקטנות
smtpערכים הם כתובות הדואר האלקטרוני המשניות (כינוי).
התכונה proxyAddresses משמשת להגדרת כתובת מסירת הדואר האלקטרוני ב- Active Directory המקומי.
כפי שניתן לראות, למשתמש מוקצות מספר כתובות SMTP נוספות, המאוחסנות בתכונת המחרוזת EmailAddresss. ייתכנו סוגים אחרים של כתובות בתכונה זו, כך שכדי לקבל רשימה של כל כתובות ה- SMTP של תיבת דואר, הפעל את הפקודה הבאה:
Get-Mailbox testmax | Select-Object DisplayName,PrimarySmtpAddress, @{Name="SMTPAliases";Expression={($_.EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object {$_ -replace "smtp:",""}) -join "," }}הפקודה הבאה מציגה את כל הכתובות הראשיות והכינויים עבור כל תיבות הדואר של המשתמשים ותיבות הדואר המשותפות ב- Exchange ומייצאת את התוצאות לקובץ CSV:
Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress, @{Name="SMTPAliases";Expression={($_.EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object {$_ -replace "smtp:",""}) -join "," }} | Export-Csv "C:\PS\List-All-SMTP-Addresses.csv" -NoTypeInformation -Encoding UTF8ה- cmdlet Get-Mailbox מציג רק מידע אודות משתמשים ותיבות דואר משותפות.
ב- Active Directory (או Azure AD), ייתכנו סוגים אחרים של אובייקטים שהוקצו להם כתובות SMTP (אובייקטים מותאמי דואר): קבוצות תפוצה, אנשי קשר וקבוצות Microsoft 365 (קבוצות מאוחדות במזהה כניסה). השתמש ב- cmdlet Get-Recipient כדי לפרט את כתובות ה- SMTP של כל האובייקטים בארגון/דייר Exchange:
Get-Recipient -ResultSize Unlimited | Select-Object DisplayName, RecipientType, PrimarySmtpAddress, @{Name="SMTPAliases";Expression={($_.EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object {$_ -replace "smtp:",""}) -join "," }}
במקרה זה, יש לנו רשימה של כתובות SMTP של כל סוגי אובייקטי Exchange. כדי לייצא רק כתובות SMTP מסוג אובייקט מסוים, הוסף את הפרמטר הבא ל- cmdlet הראשון
Get-Recipient -ResultSize Unlimited -RecipientType your_object_type | …סוגים אפשריים של אובייקטי Exchange:
קבוצת הפצה דינמית
MailContact
קבוצת דואר לא אוניברסלית
MailUniversalDistributionGroup
MailUniversalSecurityGroup
MailUser
PublicFolder
-
UserMailbox
אם עליך לחפש אובייקטי Exchange עם אותה כתובת SMTP של נמען (כפול), הפעל:
Get-Recipient -resultsize unlimited | where {$_.EmailAddresses -like "*[email *"}באפשרותך גם לקבל רשימה שטוחה של כתובות SMTP ב- Exchange:
Get-Recipient | Select-Object -ExpandProperty EmailAddresses | Where-Object { $_ -match "^smtp:" } | ForEach-Object { $_.Replace("smtp:", "").Replace("SMTP:", "") }כתובות SMTP ייחודיות נוצרו גם עבור ערוץ Microsoft Teams.
הצג את מספר כתובות ה- SMTP הייחודיות בארגון Exchange שלך:
Get-Recipient -ResultSize Unlimited | Select-Object -ExpandProperty EmailAddresses | Where-Object { $_ -match "^smtp:" }| measure-object

