יום ראשון, 12 באפריל 2020

התחברות לאופיס 365 עם PowerShell


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

באופיס 365, קיימים כמה מודולים ביניהם Share Point, אנחנו נתמקד בנושא ניהול המיילים.

לצורך התחברות לאופיס 365 יש צורך בביצוע כמה פעולות:

1) קודם כל אם אתם על windows 7\8\8.1 ביצעו הורדה של של גירסת ה PowerShell האחרונה : כאן

2) פתחו את PowerShell עם משתמש אדמיניסטרטור (לא משנה אם זה ISE או הרגיל) והריצו:
Install-Module -Name AzureAD

3) לאחר מכן התקינו את Microsoft Online Services Sign-In Assistant for IT Professionals (מסיבה לא מובנת ניתן להתקין את זה אך ורק על מערכות 64 ביט): כאן

4) לאחר שביצעתם התקנה - פתחו את PowerShell בתור מנהל (לא משנה אם ISE או הרגיל) והריצו:
Install-Module MSOnline 

* במהלך ההתקנה תצטרכו לענות על שאלות - אני מאמין שתאשרו את הכל.


לאחר שביצעתם את כל השלבים הנ"ל, פתחו PowerShell והריצו את הפקודות הבאות:

(שימו לב: לאחר שתריצו את הסקריפט תקבלו חלון שבו תתבקשו להכניס הרשאות - אלו הן הרשאות לחיבור עם חשבון מנהל ה 365 שלכם ללא דומיין וללא שום דבר
שם משתמש (לדוגמא) :lev_admin@leidertech.co.il
סיסמא: ToLongPassw0rd2Remmber!

לאחר מכן לחצו אינטר וכל שאר הדברים יתבצעו לבד.)
Set-ExecutionPolicy Unrestricted

$creds = Get-Credential

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ `
                         -Credential $creds -Authentication Basic -AllowRedirection

Install-Module MSOnline#

Import-Module MSOnline

Connect-MsolService -Credential $creds

Import-PSSession $Session

Remove-PSSession $Session#




לאחר ביצוע השלב הראשון והרצת הסקריפהראשוני, אין צורך לבצע את הפקודה install-module MSOnline מאחר והמודול כבר מותקן, לכן הסקריפט יראה טיפה שונה:

(אני לא מוחק את כל הפקודות בשביל לא לשכוח, אז אני שם "סולמית" לפני הפקודה שאני לא רוצה שתרוץ, אלה סתם תהיה שם כ"הערה")


Set-ExecutionPolicy Unrestricted

$creds = Get-Credential

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ `
                         -Credential $creds -Authentication Basic -AllowRedirection

#Install-Module MSOnline - סימון "סולמית" לפני הפקודה -מסמן שזאת היא הערה

Import-Module MSOnline

Connect-MsolService -Credential $creds

Import-PSSession $Session

#Remove-PSSession $Session




 שאלה : למה סימנתי את Remove-PSSession $Session עם "סולמית"?

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


במידה וזאת פעם ראשונה שלכם ואתם מחפשים פקודות לעבודה עם אופיס 365 ישנו פוסט שבו צירפתי פקודות שימושיות שאני מעדכן מפעם לפעם: פקודות שימושיות ל PowerShell: כאן


לידע כללי:

הסקריפט בנוי מ 2 חלקים - האחד הוא התחברות לשרת Exchange online (שרת הדואר מאחורי תיבות ה 365 בענן) והחלק השני הוא התחברות לשירותי האופיס 365 ( מה שמופיע בתור MSOL - Microsoft online).

אכן אפשר לעבוד רק עם התחברות ל Msonline אבל עדיף להשתמש גם בפקודה הארוכה אשר מחברת אותנו גם לשרת ה Exchange online - למה?

מאחר וישנן 2 סוגי פקודות:
1) פקודות של אקסצ'יינג' - לדוגמא: get-mailbox -identity lev
2) פקודות של Office 365 - לדוגמא:Get-MsolUser -SearchString lev

על מנת שנוכל להשתמשת גם באלה וגם באלה, אני מעדיף להתחבר ישר גם לשירות ה Exchange וגם לשירות האופיס 365.

(עם הזמן תבינו עד כמה שזה נוח :) )



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

1) חלק ראשון : מדריך PowerShell מאיפה מתחילים?

2) חלק שני:   מיונים, מודלים ו-Alias.

3) חלק שלישי: הרחבה של סינונים ומיונים.

4) חלק רביעי: לולאת foreach והפקודה foreach-object

5) חלק חמישי: קבלת קלט מהמשתמש



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

לכל שאלה המייל שלי: levl@LeiderTech.co.il

2 comments:

  1. לא יאמן שלא הכרתי את הבלוג המאוד שימושי שלך.
    המדריכי וידאו מאוד שימושיים במיוחד המדריך של powershell שהתחלתי איתו עכשיו.
    תודה לך על הזמן ועל העבודה.

    השבמחק
    תשובות
    1. בוקר טוב,
      תודה רבה על הפידבק, זה מאוד מחמם את הלב :).

      הרבה בריאות !

      מחק

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

תודה :)