ניהול קבוצות ב- Azure AD וב- Microsoft 365 באמצעות PowerShell


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

הדבר הראשון שיש לציין הוא שישנם מספר סוגים של קבוצות ב- Azure (M365):

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

  • קבוצות Microsoft 365 (שנקראו קודם לכן קבוצות Office 365) משמשות כאמצעי אוניברסלי לגישה למוצרי Microsoft 365 שונים (Teams, Yammer, PowerBI, SharePoint ותיבת דואר משותפת של Outlook). באופן כללי, M365 הוא אזור עבודה משותף לחברי הצוות. בעת הוספת משתמש לקבוצת M365, הוא יכול לגשת לכל התוכן שפורסם מאז יצירת הקבוצה. משתמשים בקבוצה כזו יכולים לשתף קבצים, מסמכים, רשימות דיוור, לוחות שנה וכו ';

  • קבוצות תפוצה משמשות להפצת הודעות לקבוצת נמענים או לשליחת דואר אלקטרוני המוני;

  • קבוצות אבטחה המותאמות לשימוש בדואר משמשות הן להענקת גישה למשאבים והן לשליחת הודעות דואר.

באפשרותך להוסיף משתמשים ל- Azure AD או לקבוצת Microsoft 365 באופן ידני (חברות מוקצית) או באופן דינמי (נוסף באופן אוטומטי בהתבסס על תכונות משתמש/מכשיר).

כיצד ליצור קבוצת אבטחה של Azure AD באמצעות PowerShell?

ניתן ליצור קבוצות אבטחה של Azure AD באופן ידני או לסנכרן אותן מ- Active Directory המקומי. בוא נראה כיצד ליצור קבוצות אבטחה של Azure AD ולהוסיף להן משתמשים באמצעות PowerShell.

התחבר לדייר Azure שלך באמצעות מודול Azure AD PowerShell:

Connect-AzureAD

כדי ליצור קבוצת אבטחה חדשה של Azure, הפעל את הפקודה הבאה:

New-AzureADGroup -DisplayName grVMadmins -SecurityEnabled $true -Description "CORP VM admins" -MailEnabled $false -MailNickName "NotSet"

באמצעות Microsoft Graph API, באפשרותך לקבל את תאריך היצירה של קבוצה ב- Azure AD.

כדי לקבל מידע אודות קבוצה, הפעל את הפקודה:

Get-AzureADGroup -SearchString grVMadmins

כדי להוסיף משתמש לקבוצת Azure AD, השתמש ב- cmdlet Add-AzureADGroupMember.

קבל מזהה משתמש וקבוצה:

$GroupObj = Get-AzureADGroup -SearchString grVMadmins
$UserObj = Get-AzureADUser -SearchString AlexW@a-d.site

לאחר מכן הוסף את מזהה המשתמש לקבוצה:

Add-AzureADGroupMember -ObjectId $GroupObj.ObjectId -RefObjectId $UserObj.ObjectId

פרט את חברי הקבוצה:

$GroupObj = Get-AzureADGroup -SearchString grVMadmins
Get-AzureADGroupMember -ObjectId $GroupObj.ObjectId| select DisplayName,UserPrincipalName,UserType

באפשרותך להקצות בעלים של קבוצת Azure באמצעות Add-AzureADGroupOwner.

Add-AzureADGroupMember -ObjectId $GroupObj.ObjectId -RefObjectId $UserObj.ObjectId

כדי להציג בעלים של קבוצה:

$GroupObj = Get-AzureADGroup -SearchString grVMadmins
Get-AzureADGroupOwner -ObjectId $GroupObj.ObjectId

כדי לפרט את כל הקבוצות המסונכרנות מ- Active Directory מקומי דרך Azure AD Connect (ה-

LastDirSyncTime

התכונה מציגה את תאריך הסינכרון האחרון).

Get-AzureADGroup -Filter 'DirSyncEnabled eq true' | select ObjectId,DisplayName,LastDirSyncTime

ניהול קבוצות Microsoft 365 באמצעות PowerShell

קבוצות Microsoft 365 נוצרות באופן אוטומטי באמצעות אפליקציות M365 (Teams, Share Point, Outlook, Yammer וכו'). כברירת מחדל, כל משתמש דייר יכול ליצור קבוצה של Microsoft 365. כאשר משתמש יוצר קבוצה חדשה ב- Outlook או בכל יישום אחר, נוצרת קבוצה של Microsoft 365. קבוצות Microsoft 365 זמינות בכל שירותי M365.

הקבוצה מופיעה ברשימת הקבוצות בפורטל Azure ובמרכז הניהול של Microsoft 365 באופן מיידי.

כדי ליצור קבוצות Microsoft 365, באפשרותך להשתמש ב- cmdlet New-UnifiedGroup ממודול Exchange Online for PowerShell (EXOv2).

התחבר לדייר שלך:

Connect-ExchangeOnline

כדי ליצור קבוצת M365 חדשה, הפעל פקודה זו:

New-UnifiedGroup -DisplayName "HQ IT Department" -Alias "it-dept" -EmailAddresses it-dept@a-d.site -AccessType Private

ל-M365 יש שני סוגים של קבוצות:

  • ציבורי - קבוצה פתוחה. כל משתמש יכול להצטרף לקבוצה ולגשת לתכניה;

  • פרטי - רק לחברי הקבוצה יש גישה. הבעלים של הקבוצה או מנהל Azure יכולים להוסיף משתמש לקבוצה פרטית.

כדי להוסיף משתמשים או בעלים לקבוצה, השתמש ב- cmdlet Add-UnifiedGroupLinks. בוא נוסיף משתמש לקבוצה ונקצה אותו כבעלים:

Add-UnifiedGroupLinks -Identity it-dept -LinkType Members -Links DiegoF
Add-UnifiedGroupLinks -Identity it-dept -LinkType Owners -Links DiegoF

ניתן להוסיף מנוי לקבוצה. מנוי יקבל התראות בדוא"ל:

Add-UnifiedGroupLinks -Identity it-dept -LinkType Subscribers -Links AlexW

אם ברצונך להוסיף משתמשים מרובים לקבוצת Microsoft 365 בו-זמנית, באפשרותך לייבא רשימת משתמשים מקובץ CSV:

Import-CSV "C:\PS\Data\add_m365_members.csv" | ForEach-Object {
Add-UnifiedGroupLinks -Identity it-dept -LinkType Members -Links $_.member
}

כדי להציג את כל המשתמשים בקבוצה:

Get-UnifiedGroupLinks -Identity it-dept -LinkType Members

כדי להציג בעלי קבוצות:

Get-UnifiedGroupLinks -Identity it-dept -LinkType Owners

באפשרותך להסתיר את הקבוצה M365 מרשימת הכתובות הכללית (GAL):

Set-UnifiedGroup -Identity it-dept -HiddenFromAddressListsEnabled $true

יצירה וניהול של קבוצות דינאמיות באמצעות Azure AD PowerShell

באפשרותך ליצור קבוצה דינאמית של משתמשים או מכשירים ב- Azure AD. החברים נוספים לקבוצה באופן דינמי בהתבסס על תכונות המשתמש של Azure. חברות דינאמית נתמכת הן עבור האבטחה של Azure והן עבור קבוצות Microsoft 365. כדי ליצור קבוצות דינאמיות, השתמש ב- cmdlet New-AzureADMSGroup ממודול AzureAD.

קבוצות דינאמיות דורשות רשיון Azure AD Premium P1 או P2.

לדוגמה, ניתן ליצור קבוצה דינמית הכוללת את כל המשתמשים ממינכן (

user.city -eq "Munich"

) עם התפקיד הספציפי (

user.jobTitle -like "*Engineer*"

). בוא ניצור קבוצת אבטחה דינאמית של Azure עבור דוגמה זו:

New-AzureADMSGroup -Description "mun_engineers" -DisplayName "All Munich IT dept engineers (dynamic)" -MailEnabled $false -SecurityEnabled $true -MailNickname mun_engineers -GroupTypes "DynamicMembership" -MembershipRule "(user.city -eq ""Munich"" -and user.jobTitle -contains ""Engineer"")" -MembershipRuleProcessingState "On"

למרבה הצער, מודול AzureAD מחזיר את השגיאה הבאה לאחר הפעלת הפקודה:

New-AzureADMSGroup : A parameter cannot be found that matches parameter name 'MembershipRule'.

כדי ליצור קבוצה דינאמית ב- Azure, עליך להשתמש במודול AzureADPreview:

Import-Module AzureADPreview
get-command New-AzureADMSGroup

כדי ליצור קבוצה דינאמית של Microsoft 365, ציין מאוחד כסוג קבוצה:

New-AzureADMSGroup -DisplayName "M365 Admins" -Description "Dynamic Microsoft 365 Group for tenant admins" -MailEnabled $True -SecurityEnabled $True -MailNickname M365GAdmins -GroupTypes "DynamicMembership", "Unified" -MembershipRule "(User.department -eq ""IT"")" -MembershipRuleProcessingState "On"

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

$dynGroupObj = Get-AzureADMSGroup -SearchString “All Munich IT dept engineers (dynamic)”
Set-AzureADMSGroup -Id $dynGroupObj.id -MembershipRuleProcessingState "Paused"

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

Set-AzureADMSGroup -Id $dynGroupObj.id -MembershipRuleProcessingState "On"

הטבלה הבאה מציגה תכונות משתמש שבהן באפשרותך להשתמש כדי לבנות שאילתות עבור קבוצות דינאמיות של Azure.

סוגתכונהדוגמה
בולחשבון מופעל
user.accountEnabled -eq true
בולהסנכרון מופעל
user.dirSyncEnabled -eq true
Stringעיר
(user.city -eq "value")
Stringמדינה
(user.country -eq “value”)
Stringשם החברה
(user.companyName -eq “value”)
Stringמחלקה
(user.department -eq “value”)
Stringשם תצוגה
(user.displayName -eq “value”)
Stringמספר עובד
(user.employeeId -eq “value”)
Stringפקסימיליהמספר טלפון
(user.facsimileTelephoneNumber -eq “value”)
Stringנתוןשם
(user.givenName -eq “value”)
Stringתפקיד
(user.jobTitle -eq “value”)
Stringדואר
(user.mail -eq “value”)
Stringmailכינוי
(user.mailNickName -eq “value”)
Stringנייד
(user.mobile -eq “value”)
Stringמזהה אובייקט
(user.objectId -eq “value”)
Stringמזהה אבטחת מקומית
(user.onPremisesSecurityIdentifier -eq “value”)
Stringמדיניות סיסמאות
(user.passwordPolicies -eq “DisableStrongPassword”)
StringפיזימשלוחOfficeName
(user.physicalDeliveryOfficeName -eq “value”)
Stringמיקוד
(user.postalCode -eq “value”)
Stringמועדףשפה
(user.preferredLanguage -eq “de-DE”)
StringכתובתProxy
user.sipProxyAddress -eq “value”
Stringמצב(user.state -eq "ערך")
Stringכתובת רחוב
user.streetAddress -eq “value”
Stringשם משפחה
user.surname -eq “value”
Stringמספר טלפון
(user.telephoneNumber -eq “value”)
Stringשימושמיקום
(user.usageLocation -eq “US”)
Stringשם משתמש
(user.userPrincipalName -eq “user@contoso.com”)
Stringסוג משתמש
(user.userType -eq “Member”)
אוסף מיתריםotherMails
(user.otherMails -contains “user@contoso.com”)
אוסף מיתריםכתובות proxy
(user.proxyAddresses -contains “SMTP: alias@contoso.com”)

ב- Active Directory on-prem, באפשרותך להשתמש בקבוצות תפוצה דינאמיות של Exchange בלבד.

אם ברצונך ליצור קבוצות אבטחה דינאמיות ב- AD, באפשרותך להשתמש בקבצי script של אוטומציה של PowerShell (ראה דוגמה). למד עוד אודות ניהול קבוצות ב- Active Directory מקומי באמצעות PowerShell.