M365Con 2027 – כנס אונליין חינמי · 11–22 Jan 2027 · 120 sessions→ m365con.net

בלוג · Mirko Peters

התחברות ל-Exchange Online PowerShell: מדריך שלב אחר שלב

By ·

התחברות ל-Exchange Online PowerShell באמצעות Connect-ExchangeOnline: דרישות מקדימות, כניסה אינטראקטיבית, MFA, אפשרויות לשותפים ולהרצה לא מלווה, ותיקון שגיאות.

Automatically translated with AI from the original post. Read the English original

כדי להתחבר ל-Exchange Online PowerShell, טענו את המודול ExchangeOnlineManagement והריצו Connect-ExchangeOnline -UserPrincipalName admin@yourdomain.com. יפתח חלון כניסה, תזינו את הסיסמה ותאשרו את בקשת ה-MFA, וה-shell יתחבר. מאמר זה מיועד למנהלי Exchange ו-Microsoft 365 שצריכים את השלבים המדויקים, את האפשרויות לגישה של שותפים והרצה לא מלווה, ורשימה קצרה של תיקונים לכשלי חיבור. הוא מתבסס על התיעוד הרשמי של Microsoft העדכני, ולכן הפקודות כאן מניחות אימות מודרני ולא מושב Remote PowerShell.

עיקרי הדברים

  • כדי להתחבר ל-Exchange Online PowerShell, טענו את המודול והריצו את Connect-ExchangeOnline עם חשבון המנהל שלכם בפורמט UPN.
  • הכניסה האינטראקטיבית פועלת עם אימות רב-שלבי ובלעדיו, ולכן אינכם צריכים פתרון עוקף נפרד ל-MFA.
  • אימות בסיסי ושיטת New-PSSession הישנה אינם נתמכים עוד, לכן סקריפטים שנשענים עליהם דורשים כתיבה מחדש.
  • השתמשו ב-Get-AcceptedDomain כבדיקה מהירה לאחר ההתחברות, וסיימו תמיד את החיבור עם Disconnect-ExchangeOnline.
  • סקריפטים להרצה לא מלווה צריכים להשתמש באימות app-only או בזהות מנוהלת, ולא בסיסמה שמורה.

מה צריך לפני ההתחברות

פקודת ההתחברות מגיעה מהמודול, ולכן יש להתקין את המודול קודם. אם עדיין לא עשיתם זאת, התקינו אותו מ-PowerShell Gallery באמצעות Install-Module -Name ExchangeOnlineManagement. במסמכי Microsoft המודול נקרא מודול V3. Microsoft מכסה גם את Windows PowerShell 5.1 וגם את PowerShell 7. עבור PowerShell 7 נדרשת גרסת מודול 2.0.4 ומעלה.

ארבעה דברים נוספים קובעים אם החיבור יעבוד:

  • הרשאות. בקרת גישה מבוססת תפקידים קובעת אילו cmdlets תוכלו להריץ לאחר ההתחברות. ההתחברות עצמה אינה החלק הקשה, הקשה היא להריץ את ה-cmdlet הנכון. ל-Microsoft יש עמוד שמסביר כיצד לאתר את ההרשאות שcmdlet דורש, והוא כדאי לשמור במועדפים.
  • גישה ל-PowerShell עבור החשבון. החשבון חייב להורשות להשתמש ב-Exchange Online PowerShell. אם מנהל כיבה זאת עבור המשתמש שלכם, הכניסה מצליחה אך החיבור לא.
  • רשת. יש לפתוח את פורט TCP 80 בין המחשב שלכם ל-Microsoft 365.
  • נתיב פרופיל נקי. לפי Microsoft, פקודות החיבור עלולות להיכשל אם נתיב פרופיל המשתמש מכיל תווים מיוחדים של PowerShell, כמו $. אם לחשבון שלכם יש נתיב כזה, השתמשו בחשבון אחר.

גם אין צורך לשנות דבר ב-WinRM. החיבורים העדכניים משתמשים ב-REST מאחורי הקלעים, ולכן העצה הישנה להפעיל אימות בסיסי ב-WinRM כבר אינה רלוונטית.

איך להתחבר ל-Exchange Online PowerShell שלב אחר שלב

זו שיטת הכניסה האינטראקטיבית הסטנדרטית. היא פועלת באותו אופן ב-Windows PowerShell 5.1 וב-PowerShell 7, עם אימות רב-שלבי ובלעדיו.

  1. פתחו חלון PowerShell חדש. חלון חדש מונע התנגשויות בין גרסאות של רכיבים (assemblies) לבין מודולים אחרים שטענתם קודם בסשן.
  2. טענו את המודול עם Import-Module ExchangeOnlineManagement. אם המודול כבר מותקן, לפי Microsoft אפשר בדרך כלל לדלג על שלב זה ולעבור ישירות לפקודת החיבור, מכיוון ש-PowerShell טוען את המודול באופן אוטומטי.
  3. הריצו את Connect-ExchangeOnline -UserPrincipalName admin@contoso.com, אך עם חשבון שלכם בפורמט UPN. בחלק מהארגונים אפשר להשמיט את -UserPrincipalName ולקבל הנחיה להזין אותו. אם זה לא עובד, הוסיפו את הפרמטר.
  4. הזינו את הסיסמה בחלון ההתחברות ובחרו ב-Sign in.
  5. אם החשבון שלכם משתמש ב-MFA, הזינו את קוד האימות ובחרו ב-Verify. הקוד נשלח בשיטה שהוגדרה לכם, למשל הודעת טקסט או Microsoft Authenticator. ב-PowerShell 7 ההתחברות משתמשת כברירת מחדל בדפדפן.
  6. המתינו לבאנר. היעדר שגיאה פירושו שהתחברתם בהצלחה.

זהו, זה כל מה שצריך. אותה פקודה מתחברת גם לסשנים של PowerShell עבור Microsoft 365 GCC, בלי פרמטרים נוספים. רק העננים האחרים דורשים הגדרה, וזה הנושא הבא.

אם אינכם רוצים את באנר הברכה ביומן של סקריפט, הוסיפו -ShowBanner:$false. אם תרצו ש-Get-Help יציג עזרה לפקודות Exchange Online, הוסיפו -LoadCmdletHelp. החל מגרסה 3.7.0 של המודול העזרה הזו אינה נטענת עוד כברירת מחדל, וזה מפתיע אנשים שמעדכנים את המודול ואז מגלים ש-Get-Help מחזיר כמעט כלום.

דרכים נוספות להתחבר: PowerShell 7, שותפים וענני מדינה

התיעוד מפרט כמה וריאציות. בחרו את זו שמתאימה למצב שלכם.

PowerShell 7 ללא דפדפן. הריצו את Connect-ExchangeOnline -Device. הפקודה מדפיסה הודעה שמורה לפתוח את https://microsoft.com/devicelogin ולהזין קוד. עושים זאת במכשיר אחר, מתחברים, מאשרים, והסשן המקורי מסיים את ההתחברות. זה עובד עם MFA ובלעדיו, ושימושי בשרתים או במכונות Linux ללא שולחן עבודה.

PowerShell 7 עם פרטי התחברות בשורה. Connect-ExchangeOnline -UserPrincipalName admin@contoso.com -InlineCredential עובד לחשבונות ללא MFA. רוב הארגונים דורשים MFA למנהלים, ולכן תשתמשו בזה לעיתים רחוקות.

Windows PowerShell 5.1 עם אובייקט אישורים. לחשבונות ללא MFA אפשר להריץ קודם את $Credential = Get-Credential ולאחר מכן את Connect-ExchangeOnline -Credential $Credential. Microsoft מציינת שאם זה נכשל, יש להשתמש במקום בכך ב--UserPrincipalName.

דיירי לקוחות כשותף. שותפי Cloud Solution Provider ומנהלי אורחים מוסיפים -DelegatedOrganization, למשל Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com -DelegatedOrganization adatum.onmicrosoft.com. הדף של Microsoft מפנה לתוכנית Cloud Solution Provider ולהרשאות ניהול מואצלות מפורטות (GDAP) לצד ההרשאות.

ענני ממשלה ואזוריים. -ExchangeEnvironmentName בוחר את הסביבה. ברירת המחדל היא O365Default, שמכסה את Microsoft 365 ואת GCC. הערכים המתועדים לשאר הסביבות הם O365USGovGCCHigh, O365USGovDoD, O365GermanyCloud ו-O365China.

סקריפטים ללא השגחה. אל תשמרו סיסמת מנהל בתוך סקריפט. Microsoft מתעדת שתי אפשרויות טובות יותר. זהות מנוהלת, למשל Connect-ExchangeOnline -ManagedIdentity -Organization "contoso.onmicrosoft.com", מתאימה לסקריפטים שרצים ב-Azure. אימות App-only עם אישור מתאים לכל השאר. פרמטר טביעת האצבע של האישור נתמך רק ב-Windows. ההגדרה כוללת רישום אפליקציה ב-Microsoft Entra ID, הרשאת האפליקציה Exchange.ManageAsApp עם הסכמת מנהל, אישור, ותפקיד נתמך כמו Exchange Administrator עבור האפליקציה. Microsoft ממליצה על הרשאות מינימליות, ולכן אל תעניקו לאפליקציה תפקיד Global Administrator אלא אם אין דרך אחרת. עקבו אחר המאמר הנפרד של Microsoft על אימות App-only, ולא אחרי גרסה מקוצרת שלו.

בשירות Windows, הוסיפו -SkipLoadingFormatData כדי למנוע שגיאות. אם אתם רואים שגיאות שמזכירות את Web Account Manager, לגרסת המודול 3.7.2 ומעלה יש מתג -DisableWAM לטיפול בכך.

שמרו על סקריפטים קלים: הגבילו את מה שאתם מייבאים

חיבור רגיל מייבא את הקמדלטים של Exchange Online שמותר לכם להשתמש בהם. זה בסדר לבדיקה מהירה של תיבת דואר, אבל סקריפט שצריך שלושה פקודות לא זקוק לכולן. דף המודול של Microsoft נותן לכך טיפ ספציפי. קריאות תכופות ל-Connect-ExchangeOnline ול-Disconnect-ExchangeOnline באותו סשן עלולות לגרום לדליפת זיכרון. הפתרון הוא להתחבר פעם אחת לכל סקריפט, ולהשתמש בפרמטר -CommandName כדי לייבא רק את הקמדלטים שאתם צריכים.

סקריפט שרק קורא נתוני סטטיסטיקה של תיבת דואר, למשל, צריך רק את הפקודה הזאת. ציינו את מעט הפקודות, התחברו פעם אחת בתחילה, בצעו את העבודה, והתנתקו פעם אחת בסוף. סקריפטים שנכתבים כך קלים יותר לבדיקה, כי שורת החיבור מראה לקורא אילו פקודות הסקריפט משתמש בהן.

עוד שתי הרגלים עוזרים בסביבות צוות. ראשית, שמרו את שורת החיבור במקום אחד, למשל בפונקציה קטנה, כך ששינוי בשיטת האימות יתבצע פעם אחת ולא בעשרים סקריפטים. שנית, רשמו ביומן את שם החשבון או האפליקציה שהריצו את הסקריפט, אבל לעולם לא את הסוד שלהם. כשמשהו בלתי צפוי משתנה בתיבת דואר, שורת יומן כזאת חוסכת שעות.

בדקו את החיבור והניתוק בצורה נקייה

חיבור ללא שגיאה הוא סימן טוב, אבל בדקו אותו עם פקודת קריאה לא מזיקה. Get-AcceptedDomain מציגה את הדומיינים של הארגון שלכם ורצה שנייה אחת. אם מופיעים דומיינים, הסשן עובד והחשבון שלכם בעל הרשאת קריאה לפחות.

כדי לראות פרטים על החיבורים שלכם, השתמשו ב-Get-ConnectionInformation. דף המודול של Microsoft מציין ש-Get-PSSession לא מחזירה דבר שימושי לחיבורים מבוססי REST האלה, ולכן סקריפטים ישנים שבודקים את Get-PSSession צריכים שינוי.

כשסיימתם, הריצו Disconnect-ExchangeOnline. הוסיפו -Confirm:$false בסקריפטים כדי לדלג על ההנחיה. מאמר החיבור של Microsoft מזהיר שסגירת החלון ללא ניתוק עלולה למצות את הסשנים הזמינים לכם, ואז צריך לחכות עד שהם יפוגו.

תקנו את שגיאות החיבור הנפוצות ביותר

רוב הכשלים נובעים מרשימה קצרה של סיבות. עברו עליהן מלמעלה למטה.

  • שם משתמש או סיסמה שגויים. הריצו שוב את השלבים ובדקו את שניהם. זה נשמע טריוויאלי, אבל בדקו קודם את פורמט ה-UPN.
  • הגישה ל-PowerShell כבויה עבור החשבון. מנהל יכול להפעיל אותה. ל-Microsoft יש מאמר נפרד על הפעלה או כיבוי של הגישה ל-Exchange Online PowerShell.
  • פורט 80 חסום. בקשו מצוות הרשת לאפשר TCP בפורט 80 אל Microsoft 365.
  • חשבון מאוחד עם ספק זהויות שאינו נגיש. אם ה-IDP או ה-STS שלכם אינם זמינים ציבורית, Microsoft מציעה להשתמש לחיבור בחשבון לא מאוחד ב-Microsoft 365.
  • "The term 'Update-ModuleManifest' is not recognized". החיבור דורש את PowerShellGet ואת התלות שלו PackageManagement. עדכנו את שניהם והפעילו מחדש את PowerShell.
  • "לא ניתן לטעון את הקובץ או ההרכבה 'System.IdentityModel.Tokens.Jwt'". המודול מתנגש עם מודול אחר באותה הפעלה. התחבר בחלון חדש של Windows PowerShell לפני שאתם מייבאים כל דבר אחר.
  • שגיאות בחלון שנפתח על ידי שירות או משימה מתוזמנת. נסו להשתמש ב--SkipLoadingFormatData.

אם אף אחד מאלה לא רלוונטי, גרסת המודול היא החשודה הבאה. הריצו Update-Module -Name ExchangeOnlineManagement באותו היקף שבו התקנתם אותו, ונסו שוב בחלון חדש.

טעויות נפוצות

  • שימוש ב-Basic authentication או ב-New-PSSession. Microsoft מציינת שאלה נותרו רק למטרות תיעוד היסטורי ושאינן נתמכות עוד. סקריפט שעדיין בונה הפעלה בדרך זו צריך לעבור אל Connect-ExchangeOnline.
  • סגירת החלון במקום ניתוק. זה עלול לדלל את מספר ההפעלות הזמינות לכם. הפכו את Disconnect-ExchangeOnline לשורה האחרונה של כל סקריפט.
  • הכנסת סיסמה בטקסט גלוי לתוך סקריפט. במקום זאת, השתמשו בזהות מנוהלת (managed identity) או בתעודה.
  • ייבוא מודולים אחרים קודם. התנגשות עם מודול אחר עלולה לשבש את ההתחברות. התחברו ל-Exchange Online קודם, או השתמשו בחלון חדש.
  • הנחה שחיבור פירושו הרשאה. אם cmdlet מוחזר עם "not recognized" אחרי ההתחברות, התפקיד שלכם אינו כולל אותו. זו שאלה של RBAC ולא בעיית חיבור.

נושאים קשורים לבדיקה

  • התקנה ועדכון של המודול: החיבור תלוי במודול הנכון ובגרסת PowerShell מתאימה, לכן קראו את הדרישות של מודול Exchange Online PowerShell לפני שאתם מפיצים אותו בצוות.
  • איתור הרשאות ל-cmdlet: Microsoft מסבירה כיצד לבדוק איזה תפקיד נדרש לכל cmdlet ספציפי של Exchange.
  • התחברות ל-Security & Compliance PowerShell: אותו מודול מציע את Connect-IPPSSession, שאינו זמין ב-PowerShell 7 ב-Linux או ב-macOS.
  • אוטומציה ללא השגחה: אימות של אפליקציה בלבד וזהויות מנוהלות הן הדרך להריץ סקריפטים מתוזמנים של Exchange בבטחה.
  • עבודות המוניות גדולות: ל-cmdlets מבוססי REST יש מגבלת זמן של 15 דקות, לכן פצלו עדכוני חברים גדולים לקבוצות (batches).

הצעד הבא

כדי להתחבר ל-Exchange Online PowerShell בצורה אמינה, התחילו בחלון חדש, הריצו Connect-ExchangeOnline -UserPrincipalName עם חשבון המנהל שלכם, בדקו עם Get-AcceptedDomain ונתקו כשתסיימו. לאחר מכן תכננו את הסקריפטים הלא מאוישים סביב זהות מנוהלת או תעודה, כך שאף אחד לא יצטרך להקליד או לשמור סיסמה.

Entities in this article

Exchange Online PowerShell PowerShell

Related articles

RSS