Powershell для исключения членов группы из динамического списка рассылки O365

я создаю всю динамическую группу рассылки в обмене Office 365 онлайн. Я делаю это с помощью Powershell. Мы назовем эту группу AllTestGroup. Вот некоторая информация об установке.

  • Exchange Online
  • On-Prem Active Directory
  • Большинство почтовых ящиков связаны с пользователем-prem ad. (ADSync)
  • Некоторые почтовые ящики предназначены только для-облака.
  • В учетной записи пользователя рекламы не найдены настраиваемые атрибуты или атрибуты расширения. (Проблема унаследована). Однако у него есть msDS-CloudExtensionAttribute0-20. Когда вы устанавливаете один, он не отображается на стороне Office 365. Кроме того, когда вы пытаетесь добавить, мы получаем активный каталог azure и обмениваемся онлайн-ошибкой «Невозможно обновить указанные свойства для локальных -объектов синхронизации каталогов или объектов, которые в настоящее время проходят миграцию. DualWrite (Graph )»

Вот что нужно/требуется клиенту:

  • Одна группа, содержащая все UserMailbox
  • Нет MailContacts
  • Исключить всех внутри этой группы 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. Например, Эллан Смит входит в группу безопасности AllExclusion. Она появляется в списке. Чтобы убедиться, что я полностью синхронизирован,Я запустил Start-ADSyncSyncCycle -PolicyType Initial и Delta. Я подождал рекомендованные 20 минут и попробовал еще раз. Те же результаты.

Я чувствую, что упускаю что-то маленькое, но я не знаю, что именно.

0
задан 1 December 2021 в 14:55
1 ответ

Это уникальная ситуация. Я пытался получить из локальной AD, когда я должен был получить из Azure AD. В этой строке:

-and (-not(MemberOfGroup -eq 'CN=AllExclusion,OU=SG,DC=Example,DC=Local')) `

я нацеливаю DN-имя для исключения из локальной AD. Мне нужно получить DN для Azure AD. Причина этого в том, что онлайн-обмен указывает на лазурное, а не на локальное объявление. Если бы это была локальная биржа on-prem, это бы сработало, но это не так. Чтобы получить 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')`
)
1
ответ дан 1 December 2021 в 20:34

Теги

Похожие вопросы