ค้นหาเว็บไซต์

จัดการกลุ่มใน Azure AD และ Microsoft 365 โดยใช้ PowerShell


คุณสามารถใช้เครื่องมือการจัดการแบบกราฟิก เช่น Azure Portal หรือ Microsoft 365 Admin Center เพื่อจัดการกลุ่มใน 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 Security Group โดยใช้ 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

รับผู้ใช้และ ID กลุ่ม:

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

จากนั้นเพิ่ม ID ผู้ใช้ลงในกลุ่ม:

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 Portal และใน Microsoft 365 Admin Center ทันที

หากต้องการสร้างกลุ่ม Microsoft 365 คุณสามารถใช้ cmdlet New-UnifiedGroup จากโมดูล Exchange Online สำหรับ 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 จาก Global Address List (GAL):

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

สร้างและจัดการกลุ่มไดนามิกด้วย Azure AD PowerShell

คุณสามารถสร้างกลุ่มไดนามิกของผู้ใช้หรืออุปกรณ์ใน Azure AD สมาชิกจะถูกเพิ่มลงในกลุ่มแบบไดนามิกตามแอตทริบิวต์ของผู้ใช้ Azure การเป็นสมาชิกแบบไดนามิกได้รับการสนับสนุนสำหรับทั้งการรักษาความปลอดภัย Azure และกลุ่ม Microsoft 365 หากต้องการสร้างกลุ่มแบบไดนามิก ให้ใช้ cmdlet 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 แบบไดนามิก ให้ระบุ Unified เป็นประเภทกลุ่ม:

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 ในองค์กรจะได้รับการอัปเดตเมื่อมีการเปลี่ยนแปลงคุณสมบัติของผู้ใช้หรืออุปกรณ์ หากคุณทำการเปลี่ยนแปลง AD จำนวนมาก นำเข้าผู้ใช้จำนวนมาก หรือเปลี่ยนสถาปัตยกรรมกลุ่ม/ผู้ใช้ ขอแนะนำให้ระงับการอัปเดตอัตโนมัติของกลุ่มไดนามิกชั่วคราว:

$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

TypeAttributeExample
BoolaccountEnableduser.accountEnabled -eq true
BooldirSyncEnableduser.dirSyncEnabled -eq true
Stringcity(user.city -eq "value")
Stringcountry(user.country -eq “value”)
StringcompanyName(user.companyName -eq “value”)
Stringdepartment(user.department -eq “value”)
StringdisplayName(user.displayName -eq “value”)
StringemployeeId(user.employeeId -eq “value”)
StringfacsimileTelephoneNumber(user.facsimileTelephoneNumber -eq “value”)
StringgivenName(user.givenName -eq “value”)
StringjobTitle(user.jobTitle -eq “value”)
Stringmail(user.mail -eq “value”)
StringmailNickName(user.mailNickName -eq “value”)
Stringmobile(user.mobile -eq “value”)
StringobjectId(user.objectId -eq “value”)
StringonPremisesSecurityIdentifier(user.onPremisesSecurityIdentifier -eq “value”)
StringpasswordPolicies(user.passwordPolicies -eq “DisableStrongPassword”)
StringphysicalDeliveryOfficeName(user.physicalDeliveryOfficeName -eq “value”)
StringpostalCode(user.postalCode -eq “value”)
StringpreferredLanguage(user.preferredLanguage -eq “de-DE”)
StringsipProxyAddressuser.sipProxyAddress -eq “value”
Stringstate(user.state -eq “value”)
StringstreetAddressuser.streetAddress -eq “value”
Stringsurnameuser.surname -eq “value”
StringtelephoneNumber(user.telephoneNumber -eq “value”)
StringusageLocation(user.usageLocation -eq “US”)
StringuserPrincipalName(user.userPrincipalName -eq “user@contoso.com”)
StringuserType(user.userType -eq “Member”)
String collectionotherMails(user.otherMails -contains “user@contoso.com”)
String collectionproxyAddresses(user.proxyAddresses -contains “SMTP: alias@contoso.com”)

ใน Active Directory ภายในองค์กร คุณสามารถใช้กลุ่มการแจกจ่ายแบบไดนามิกของ Exchange ได้เท่านั้น

หากคุณต้องการสร้างกลุ่มความปลอดภัยแบบไดนามิกใน AD คุณสามารถใช้สคริปต์การทำงานอัตโนมัติของ PowerShell (ดูตัวอย่าง) เรียนรู้เพิ่มเติมเกี่ยวกับการจัดการกลุ่มใน Active Directory ภายในองค์กรโดยใช้ PowerShell

บทความที่เกี่ยวข้อง