PowerShell Kullanarak Azure AD ve Microsoft 365'te Grupları Yönetin


Azure'da grupları yönetmek için Azure Portal veya Microsoft 365 Admin Center gibi grafiksel yönetim araçlarını kullanabilirsiniz. Bu makalede, PowerShell kullanarak Azure AD veya Microsoft 365'te grupların nasıl oluşturulacağını, düzenleneceğini, güncelleştirileceğini ve silineceğini göstereceğiz.

Unutulmaması gereken ilk şey, Azure'da (M365) birkaç grup türü olduğudur:

  • Azure AD güvenlik grupları, Azure uygulamalarına ve kaynaklarına erişimi yönetmek için kullanılır. Bir Azure uygulamasına erişime izin verebilir, güvenlik gruplarına ilkeler veya Azure lisansları (grup tabanlı lisanslama) atayabilirsiniz.

  • Microsoft 365 grupları (eski adıyla Office 365 grupları), farklı Microsoft 365 ürünlerine (Teams, Yammer, PowerBI, SharePoint ve paylaşılan bir Outlook posta kutusu) erişmek için evrensel bir araç olarak kullanılır ). Genel olarak M365, ekip üyeleri için paylaşılan bir çalışma alanıdır. Bir M365 grubuna bir kullanıcı eklerken, grup oluşturulduğundan beri yayınlanan tüm içeriğe erişebilirler. Böyle bir gruptaki kullanıcılar dosya, belge, posta listeleri, takvimler vb. paylaşabilir;

  • Dağıtım grupları, mesajları bir grup alıcıya dağıtmak veya toplu e-posta göndermek için kullanılır;

  • Posta özellikli güvenlik grupları, hem kaynaklara erişim izni vermek hem de posta göndermek için kullanılır.

Kullanıcıları Azure AD veya Microsoft 365 grubuna el ile (atanan üyelik) veya dinamik olarak (kullanıcı/cihaz özniteliklerine göre otomatik olarak eklenir) ekleyebilirsiniz.

PowerShell Kullanarak Azure AD Güvenlik Grubu Nasıl Oluşturulur?

Azure AD güvenlik grupları manuel olarak oluşturulabilir veya şirket içi Active Directory'den eşitlenebilir. PowerShell kullanarak Azure AD güvenlik gruplarının nasıl oluşturulacağını ve bunlara nasıl kullanıcı ekleneceğini görelim.

Azure AD PowerShell modülünü kullanarak Azure kiracınıza bağlanın:

Connect-AzureAD

Yeni bir Azure güvenlik grubu oluşturmak için aşağıdaki komutu çalıştırın:

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

Microsoft Graph API'yi kullanarak Azure AD'de bir grubun oluşturulma tarihini alabilirsiniz.

Bir grup hakkında bilgi almak için şu komutu çalıştırın:

Get-AzureADGroup -SearchString grVMadmins

Bir Azure AD grubuna kullanıcı eklemek için Add-AzureADGroupMember cmdlet'ini kullanın.

Bir kullanıcı ve grup kimliği alın:

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

Ardından kullanıcı kimliğini gruba ekleyin:

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

Bir grubun üyelerini listeleyin:

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

Add-AzureADGroupOwner'ı kullanarak bir Azure grup sahibi atayabilirsiniz.

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

Bir grup sahibini görüntülemek için:

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

Şirket içi bir Active Directory'den Azure AD Connect aracılığıyla eşitlenen tüm grupları listelemek için (

LastDirSyncTime

öznitelik, son senkronizasyonun tarihini gösterir).

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

PowerShell Kullanarak Microsoft 365 Gruplarını Yönetme

Microsoft 365 grupları, M365 uygulamaları (Teams, Share Point, Outlook, Yammer vb.) kullanılarak otomatik olarak oluşturulur. Varsayılan olarak, herhangi bir kiracı kullanıcı bir Microsoft 365 grubu oluşturabilir. Bir kullanıcı Outlook'ta veya başka bir uygulamada yeni bir grup oluşturduğunda, bu oluşturulan bir Microsoft 365 grubudur. Microsoft 365 grupları tüm M365 hizmetlerinde mevcuttur.

Grup, Azure Portal ve Microsoft 365 Admin Center'daki gruplar listesinde hemen görünür.

Microsoft 365 grupları oluşturmak için Exchange Online for PowerShell (EXOv2) modülünden New-UnifiedGroup cmdlet'ini kullanabilirsiniz.

Kiracınıza bağlanın:

Connect-ExchangeOnline

Yeni bir M365 grubu oluşturmak için şu komutu çalıştırın:

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

M365'in iki tür grubu vardır:

  • Genel - açık bir grup. Herhangi bir kullanıcı gruba katılabilir ve içeriğine erişebilir;

  • Gizli - yalnızca grup üyelerinin erişimi vardır. Grubun sahibi veya bir Azure yöneticisi, özel bir gruba kullanıcı ekleyebilir.

Gruba kullanıcı veya sahip eklemek için Add-UnifiedGroupLinks cmdlet'ini kullanın. Gruba bir kullanıcı ekleyelim ve onu sahip olarak atayalım:

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

Gruba abone ekleyebilirsiniz. Bir abone e-posta bildirimleri alacaktır:

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

Bir Microsoft 365 grubuna aynı anda birden çok kullanıcı eklemek istiyorsanız bir CSV dosyasından bir kullanıcı listesi alabilirsiniz:

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

Bir gruptaki tüm kullanıcıları görüntülemek için:

Get-UnifiedGroupLinks -Identity it-dept -LinkType Members

Grup sahiplerini göstermek için:

Get-UnifiedGroupLinks -Identity it-dept -LinkType Owners

M365 grubunu Genel Adres Listesinden (GAL) gizleyebilirsiniz:

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

Azure AD PowerShell ile Dinamik Gruplar Oluşturun ve Yönetin

Azure AD'de kullanıcılardan veya cihazlardan oluşan bir dinamik grup oluşturabilirsiniz. Üyeler, Azure kullanıcı özniteliklerine göre dinamik olarak gruba eklenir. Dinamik üyelik, hem Azure güvenliği hem de Microsoft 365 grupları için desteklenir. Dinamik gruplar oluşturmak için AzureAD modülünden New-AzureADMSGroup cmdlet'ini kullanın.

Dinamik gruplar, bir Azure AD Premium P1 veya P2 lisansı gerektirir.

Örneğin, Münih'teki tüm kullanıcıları içeren bir dinamik grup oluşturabilirsiniz (

user.city -eq "Munich"

) belirli iş pozisyonu ile (

user.jobTitle -like "*Engineer*"

). Bu örnek için dinamik bir Azure güvenlik grubu oluşturalım:

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"

Ne yazık ki AzureAD modülü, komutu çalıştırdıktan sonra aşağıdaki hatayı veriyor:

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

Azure'da bir dinamik grup oluşturmak için AzureADPreview modülünü kullanmanız gerekir:

Import-Module AzureADPreview
get-command New-AzureADMSGroup

Dinamik bir Microsoft 365 grubu oluşturmak için grup türü olarak Birleştirilmiş'i belirtin:

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"

Bir kuruluştaki Azure dinamik gruplarına üyelik, herhangi bir kullanıcı veya cihaz özelliği değiştirildiğinde güncellenir. AD'de toplu değişiklikler yaparsanız, birçok kullanıcıyı içe aktarırsanız veya grup/kullanıcı mimarisini değiştirirseniz, dinamik grupların otomatik güncellemesini bir süre askıya almanız önerilir:

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

Dinamik bir grup için kural işlemeyi etkinleştirmek üzere aşağıdaki komutu çalıştırın:

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

Aşağıdaki tablo, Azure dinamik grupları için sorgular oluşturmak üzere kullanabileceğiniz kullanıcı özniteliklerini gösterir.

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”)

Şirket içi Active Directory'de yalnızca Exchange dinamik dağıtım gruplarını kullanabilirsiniz.

AD'de dinamik güvenlik grupları oluşturmak istiyorsanız, PowerShell otomasyon betiklerini kullanabilirsiniz (bir örneğe bakın). PowerShell kullanan şirket içi bir Active Directory'de grup yönetimi hakkında daha fazla bilgi edinin.

İlgili makaleler