Office 365 üzerinde dynamic distribution group’larını organizasyona yeni katılan veya bazı kriterleri karşılayan mailbox kullanıcılarının belirlediğimiz gruba otomatik olarak katılabilmesi adına sık sık kullanmaktayız. Bazı özel durumlarda Dynamic Distribution group’larından bir veya birden fazla kullanıcının mailboxlarının dışlanması (exclude) edilmesi istenebilir. Office 365 üzerinde organizasyonlar user’larını ve group’larını ister cloud ister local Active Directory’den ADConnect tool’u ile sync ederek kullanabilirler. Mailboxların dışlanması (exclude) ihtiyacı her 2 metot da mümkün olmakla beraber izlenecek yol farklıdır.
1-Office 365 üzerinde kullanıcılarınızı Active Directory’den ADConnect aracı ile sync ediyorsanız aşağıdaki yöntem ile Dynamic Distribution Group üzerinden kullanıcı veya kullanıcılarınızın mailboxlarını exclude edebilirsiniz.
Not : Office 365 Portal arayüzünden bu işlem yapılamamaktadır.
Office 365 Exchange Online PowerShell ile bağlantı kurulur.
Import-Module MSOnline
$O365Cred = Get-Credential
$O365Session = New-PSSession –ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $O365Cred -Authentication Basic -AllowRedirection
Import-PSSession $O365Session
Connect-MsolService –Credential $O365Cred
Not : Powershell komutlarını uygulamadan önce komutlar’da kalın siyah olarak işaretlediğim değerlere kendi ortamınızdaki değişiklik yapmak istediğiniz dynamic distribution group’un bilgisini giriniz.
İşlemin başarılı olup olmadığını anlamak adına öncelikle mevcuttaki Dynamic Distribution group üzerindeki member sayısına bakacağız.
$members = Get-DynamicDistributionGroup -Identity “All Company | HM”
(Get-Recipient -RecipientPreviewFilter $members.RecipientFilter).count
$members = Get-DynamicDistributionGroup -Identity “All Company | HM”
(Get-Recipient -RecipientPreviewFilter $members.RecipientFilter).count
8
Dynamic Distribution group kuralına öncelikle göz atalım ve içerisinde yapacağımız değişiklik için “RecipientFilter” değeri üzerinde değişiklik yapacağız.
Get-DynamicDistributionGroup -Identity “All Company | HM” | fl Name,RecipientFilter
Get-DynamicDistributionGroup -Identity “All Company | HM” | fl Name,RecipientFilter
Name : All Company | HM
RecipientFilter : ((RecipientType -eq ‘UserMailbox’) -and (-not(Name -like ‘SystemMailbox{*’)) -and (-not(Name -like ‘CAS_{*’)) -and (-not(RecipientTypeDetailsValue -eq ‘MailboxPlan’)) -and
(-not(RecipientTypeDetailsValue -eq ‘DiscoveryMailbox’)) -and (-not(RecipientTypeDetailsValue -eq ‘PublicFolderMailbox’)) -and (-not(RecipientTypeDetailsValue -eq
‘ArbitrationMailbox’)) -and (-not(RecipientTypeDetailsValue -eq ‘AuditLogMailbox’)) -and (-not(RecipientTypeDetailsValue -eq ‘AuxAuditLogMailbox’)) -and
(-not(RecipientTypeDetailsValue -eq ‘SupervisoryReviewPolicyMailbox’)) -and (-not(RecipientTypeDetailsValue -eq ‘GuestMailUser’)))
User objelerini Active Directory üzerinden sync ettiğimiz için Exclude yapacağımız kullanıcı veya kullanıcılara on-premise Active Directory üzerinden bir kriter belirlememiz gerekmektedir. Exclude etmek istediğim kullanıcının Active Directory üzerinde attribute’lerinden istediğiniz bir “custom attribute” kullanarak bir değer giriniz. Örneğin ben kullanmadığım CustomAttribute15 bölümüne “Exclude” değerini girdim ve bir sonraki sync cycle’da ilgili attribute kullanıcının Azure AD üzerindeki attribute kısmına sync oldu.
İpucu ! : Eğer Active Directory üzerinde CustomAttribute değerlerini göremiyorsanız AD ortamında Exchange Schema genişletme işlemi yapmanız veya hali hazırda sync olan attributelerden birini kullanmanız gerekmektedir.
Powerhell’de ki siyah kısımda belirttiğim CustomAttribute15 değerini siz kendinize göre özelleştirebilirsiniz. CustomAttribute15 attribute bölümünde Exclude yazan kullanıcının belirlediğimiz Dynamic Distribution group üzerinden exclude olması adına alttaki alanları düzenledikten sonra powershell’i çalıştırıyoruz.
Set-DynamicDistributionGroup -Identity “All Company | HM” -RecipientFilter {((RecipientType -eq “UserMailbox”) -and (-not (CustomAttribute15 -like “Exclude”)) -and (-not(Name -like “SystemMailbox{*”)) -and (-not(Name -like “CAS_{*”)) -and (-not(RecipientTypeDetailsValue -eq “MailboxPlan”)) -and (-not(RecipientTypeDetailsValue -eq “DiscoveryMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “PublicFolderMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “ArbitrationMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “AuditLogMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “AuxAuditLogMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “SupervisoryReviewPolicyMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “GuestMailUser”)))}
Set-DynamicDistributionGroup -Identity “All Company | HM” -RecipientFilter {((RecipientType -eq “UserMailbox”) -and (-not (CustomAttribute15 -like “Exclude”)) -and (-not(Name -like “SystemMailbox{*”)) -and (-not(Name -like “CAS_{*”)) -and (-not(RecipientTypeDetailsValue -eq “MailboxPlan”)) -and (-not(RecipientTypeDetailsValue -eq “DiscoveryMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “PublicFolderMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “ArbitrationMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “AuditLogMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “AuxAuditLogMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “SupervisoryReviewPolicyMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “GuestMailUser”)))}
Grup üyelerini tekrar listelemek istediğimde gördüğünüz gibi kullanımın ilgili grup’ta member sayısının düştüğünü görmekteyim.
$members = Get-DynamicDistributionGroup -Identity “All Company | HM”
(Get-Recipient -RecipientPreviewFilter $members.RecipientFilter).count
$members = Get-DynamicDistributionGroup -Identity “All Company | HM”
(Get-Recipient -RecipientPreviewFilter $members.RecipientFilter).count
7
Dynamic Distibution grouplarının üyelerini kontrol ettiğimde Exclude ettiğim kullanıcıyı üye olarak görememekteyim.
$DDGMembers = Get-DynamicDistributionGroup “All Company | HM“
Get-Recipient -RecipientPreviewFilter $DDGMembers.RecipientFilter
$DDGMembers = Get-DynamicDistributionGroup “All Company | HM”
Get-Recipient -RecipientPreviewFilter $DDGMembers.RecipientFilter
Name RecipientType
—- ————-
HakanMARANGOZ UserMailbox
Hakan MARANGOZ UserMailbox
Burak MARANGOZ UserMailbox
Hasan DANIS UserMailbox
Hasan GURAL UserMailbox
Umit SEYHAN UserMailbox
Emre ERBULMUS UserMailbox
2-Office 365 üzerinde kullanıcılarınızı Azure Active Directory’de barındırıyorsanız aşağıdaki yöntem ile Dynamic Distribution Group üzerinden kullanıcı veya kullanıcılarınızın mailboxlarını exclude edebilirsiniz.
Not : Office 365 Portal arayüzünden bu işlem yapılamamaktadır.
Office 365 Exchange Online PowerShell ile bağlantı kurulur.
Import-Module MSOnline
$O365Cred = Get-Credential
$O365Session = New-PSSession –ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $O365Cred -Authentication Basic -AllowRedirection
Import-PSSession $O365Session
Connect-MsolService –Credential $O365Cred
İşlemin başarılı olup olmadığını anlamak adına öncelikle mevcuttaki Dynamic Distribution group üzerindeki member sayısına bakacağız.
$members = Get-DynamicDistributionGroup -Identity “All Company | HM”
(Get-Recipient -RecipientPreviewFilter $members.RecipientFilter).count
$members = Get-DynamicDistributionGroup -Identity “All Company | HM”
(Get-Recipient -RecipientPreviewFilter $members.RecipientFilter).count
8
Dynamic Distribution group kuralına öncelikle göz atalım ve içerisinde yapacağımız değişiklik için “RecipientFilter” değeri üzerinde değişiklik yapacağız.
Get-DynamicDistributionGroup -Identity “All Company | HM” | fl Name,RecipientFilter
Get-DynamicDistributionGroup -Identity “All Company | HM” | fl Name,RecipientFilter
Name : All Company | HM
RecipientFilter : ((RecipientType -eq ‘UserMailbox’) -and (-not(Name -like ‘SystemMailbox{*’)) -and (-not(Name -like ‘CAS_{*’)) -and (-not(RecipientTypeDetailsValue -eq ‘MailboxPlan’)) -and
(-not(RecipientTypeDetailsValue -eq ‘DiscoveryMailbox’)) -and (-not(RecipientTypeDetailsValue -eq ‘PublicFolderMailbox’)) -and (-not(RecipientTypeDetailsValue -eq
‘ArbitrationMailbox’)) -and (-not(RecipientTypeDetailsValue -eq ‘AuditLogMailbox’)) -and (-not(RecipientTypeDetailsValue -eq ‘AuxAuditLogMailbox’)) -and
(-not(RecipientTypeDetailsValue -eq ‘SupervisoryReviewPolicyMailbox’)) -and (-not(RecipientTypeDetailsValue -eq ‘GuestMailUser’)))
User objelerini Azure Active Directory üzerinde barındırdığım için Exclude yapacağımız kullanıcı veya kullanıcıların Azure Active Directory üzerindeki attribute’lerinden istediğiniz bir “custom attribute” kullanarak bir değer giriniz. Örneğin ben başka bir iş için kullanmadığım CustomAttribute15 bölümüne “Exclude” değerini girdim.
Powerhell’de ki siyah kısımda belirttiğim CustomAttribute15 değerini siz kendinize göre özelleştirebilirsiniz. CustomAttribute15 attribute bölümünde Exclude yazan kullanıcı veya kullanıcıların belirlediğimiz Dynamic Distribution group üzerinden exclude olması adına alttaki alanları düzenledikten sonra powershelli çalıştırıyoruz.
Set-DynamicDistributionGroup -Identity “All Company | HM” -RecipientFilter {((RecipientType -eq “UserMailbox”) -and (-not (CustomAttribute15 -like “Exclude”)) -and (-not(Name -like “SystemMailbox{*”)) -and (-not(Name -like “CAS_{*”)) -and (-not(RecipientTypeDetailsValue -eq “MailboxPlan”)) -and (-not(RecipientTypeDetailsValue -eq “DiscoveryMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “PublicFolderMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “ArbitrationMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “AuditLogMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “AuxAuditLogMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “SupervisoryReviewPolicyMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “GuestMailUser”)))}
Set-DynamicDistributionGroup -Identity “All Company | HM” -RecipientFilter {((RecipientType -eq “UserMailbox”) -and (-not (CustomAttribute15 -like “Exclude”)) -and (-not(Name -like “SystemMailbox{*”)) -and (-not(Name -like “CAS_{*”)) -and (-not(RecipientTypeDetailsValue -eq “MailboxPlan”)) -and (-not(RecipientTypeDetailsValue -eq “DiscoveryMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “PublicFolderMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “ArbitrationMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “AuditLogMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “AuxAuditLogMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “SupervisoryReviewPolicyMailbox”)) -and (-not(RecipientTypeDetailsValue -eq “GuestMailUser”)))}
Grup üyelerini tekrar listelemek istediğimde gördüğünüz gibi kullanımın ilgili grup’ta member sayısının düştüğünü görmekteyim.
$members = Get-DynamicDistributionGroup -Identity “All Company | HM”
(Get-Recipient -RecipientPreviewFilter $members.RecipientFilter).count
$members = Get-DynamicDistributionGroup -Identity “All Company | HM”
(Get-Recipient -RecipientPreviewFilter $members.RecipientFilter).count
7
Dynamic Distibution grouplarının üyelerini kontrol ettiğimde Exclude ettiğim kullanıcıyı üye olarak görememekteyim.
$DDGMembers = Get-DynamicDistributionGroup “All Company | HM”
Get-Recipient -RecipientPreviewFilter $DDGMembers.RecipientFilter
$DDGMembers = Get-DynamicDistributionGroup “All Company | HM”
Get-Recipient -RecipientPreviewFilter $DDGMembers.RecipientFilter
Name RecipientType
—- ————-
HakanMARANGOZ UserMailbox
Hakan MARANGOZ UserMailbox
Caner CETINKAYA UserMailbox
Burak MARANGOZ UserMailbox
Hasan DANIS UserMailbox
Hasan GURAL UserMailbox
Umit SEYHAN UserMailbox
Emre ERBULMUS UserMailbox
Umarım faydalı olmuştur , keyifli okumalar.