Powershell
Powershell 從動態分發列表 O365 中排除組成員
我正在 Office 365 線上交換中創建一個全動態通訊組。我正在使用 Powershell 執行此操作。我們將這個組稱為 AllTestGroup。這是有關設置的一些資訊。
- 線上交流
- 本地活動目錄
- 大多數郵箱都與本地廣告使用者相關聯。(廣告同步)
- 一些郵箱是僅限雲的。
- 在廣告使用者的帳戶中找不到自定義屬性或擴展屬性(繼承問題)。但是它確實有 msDS-CloudExtensionAttribute0-20。當你設置一個時,它不會出現在 Office 365 端。另外,當您嘗試添加時,我們會收到一個 azure Active Directory 並線上交換錯誤“無法更新本地主控目錄同步對像或目前正在遷移的對象的指定屬性。DualWrite (Graph)”
這是客戶需要/要求的:
- 包含所有 UserMailbox 的單個組
- 沒有郵件聯繫人
- 排除此 AD 組中的任何人*“CN=AllExclusion,OU=SG,DC=Example,DC=Local”*
- 排除此 O365 通訊組中的任何人:AllPRN@Example.org
- 無額外費用
這是我為此創建的過濾器:
(` (RecipientType -eq 'UserMailbox') ` -and (-not(RecipientType -eq 'MailContact')) ` -and (-not(MemberOfGroup -eq 'CN=AllExclusion,OU=SG,DC=Example,DC=Local')) ` -and (-not(MemberOfGroup -eq 'AllPRN@Example.org')) ` -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'))` )
(使用 ` 標記拆分程式碼以提高可讀性。)這是我面臨的問題。當我執行Get-DynamicDistributionGroupMemeber時,我仍然看到 AllExclusion 安全組中的使用者。我還看到了 AllPRN@example.org 的成員。例如,Ellan Smith 屬於 AllExclusion 安全組。她出現在名單上。為了確保完全同步,我執行了 Start-ADSyncSyncCycle - PolicyType Initial 和 Delta。我等了 20 分鐘,然後再試一次。結果相同。
我覺得我錯過了一些小東西,但我不知道那是什麼。
這是一個獨特的情況。當我應該從 Azure AD 中提取時,我試圖從本地 AD 中提取。在這一行:
-and (-not(MemberOfGroup -eq 'CN=AllExclusion,OU=SG,DC=Example,DC=Local')) `
我的目標是從本地 AD 中排除 DN 名稱。我需要獲取 Azure AD 的 DN。這樣做的原因是因為線上交換指向的是 azure 而不是本地廣告。如果這是本地本地交換,這將起作用,但事實並非如此。要獲取 DN,您需要執行以下命令:
(Get-DistributionGroup AllExclusion).DistinguishedName
DN 會大得多。它看起來像這樣:
CN=AllExclusion,OU=Example.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=NAMPR##A###,DC=PROD,DC=OUTLOOK,DC=COM
因此,您的排除將如下所示:
-and (-not(MemberOfGroup -eq 'CN=AllExclusion,OU=Example.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=NAMPR##A###,DC=PROD,DC=OUTLOOK,DC=COM'))
這是最終的收件人過濾器的樣子:
( (RecipientType -eq 'UserMailbox') ` -and (RecipientType -ne 'MailContact') ` -and (MemberOfGroup -ne 'CN=AllExclusion,OU=Example.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=NAMPR##A###,DC=PROD,DC=OUTLOOK,DC=COM') ` -and (Name -notlike 'SystemMailbox{*') ` -and (Name -notlike 'CAS_{*') ` -and (RecipientTypeDetailsValue -ne 'MailboxPlan') ` -and (RecipientTypeDetailsValue -ne 'DiscoveryMailbox') ` -and (RecipientTypeDetailsValue -ne 'PublicFolderMailbox') ` -and (RecipientTypeDetailsValue -ne 'ArbitrationMailbox') ` -and (RecipientTypeDetailsValue -ne 'AuditLogMailbox') ` -and (RecipientTypeDetailsValue -ne 'AuxAuditLogMailbox') ` -and (RecipientTypeDetailsValue -ne 'SupervisoryReviewPolicyMailbox') ` -and (RecipientTypeDetailsValue -ne 'GuestMailUser')` )