none
New-DynamicDistributionGroup -RecipientFilter RRS feed

  • Вопрос

  • Коллеги, добрый день!

    Подскажите, как можно обойти это ограничение:

    New-DynamicDistributionGroup -PrimarySmtpAddress "rassylka@domen.com" -Alias "rassylka" -Name "rassylka" -DisplayName "rassylka" -OrganizationalUnit "OU=OU,DC=DOMEN,DC=COM" -RecipientContainer "OU=OU,DC=DOMEN,DC=,DC=COM" -RecipientFilter "(leader -eq $true) -and (Mail -like '*') -and (Enabled -eq $true)"

    Cannot bind parameter 'RecipientFilter' to the target. Exception setting "RecipientFilter": ""leader" не является известным фильтруемым свойством. Полный список фильтруемых свойств см. в сп
    равке к команде.
    "(leader -eq True) -and (Mail -like '*') -and (Enabled -eq True)" на позиции 2."
    C:\Users\user\AppData\Local\Temp\tmp_1l1in4sa.t3u\tmp_1l1in4sa.t3u.psm1:41201 знак:9
    +         $steppablePipeline.End()
    +         ~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : WriteError: (:) [New-DynamicDistributionGroup], ParameterBindingException
        + FullyQualifiedErrorId : ParameterBindingFailed,Microsoft.Exchange.Management.RecipientTasks.NewDynamicDistributionGroup

    То есть проблема в фильтре: "(leader -eq $true) -and (Mail -like '*') -and (Enabled -eq $true)"

    Что я хочу сделать - Получить учетные записи у которых есть Подчиненные. Иными словами - руководителей.

    В моем случае использовать поле с должностью не вариант.

    Это я читал и ничего подходящего для себя не нашел.

    https://docs.microsoft.com/en-us/powershell/exchange/recipientfilter-properties?view=exchange-ps

    28 июля 2020 г. 10:17

Ответы

  • Ошибся в имени свойства. Правильно:

    Get-DynamicDistributionGroup "Рассылка" | Set-DynamicDistributionGroup -RecipientFilter {DirectReports -ne $null}


    Слава России!

    • Помечено в качестве ответа Sergey Ya 30 июля 2020 г. 5:51
    29 июля 2020 г. 14:07

Все ответы

  • Я бы сделал проще, всем пользователям у которых есть подчиненные добавил -CustomAttribute и затем отфильтровал в DL пользователей по этому атрибуту.

    28 июля 2020 г. 10:48
    Модератор
  • Я бы сделал проще, всем пользователям у которых есть подчиненные добавил -CustomAttribute и затем отфильтровал в DL пользователей по этому атрибуту.

    Тоже вариант, но это подразумевает менять бизнеспроцесс, чего не очень хочется делать ради пары групп рассылок.

    Может, можно в этот фильтр вставить LDAP запрос? Так можно сделать?

    Ничего вразумительного нагуглить не могу :( 

    28 июля 2020 г. 11:19
  • Свойства которые Вы можете использовать в -RecepientFilter перечислены в статье:

    Filterable properties for the RecipientFilter parameter

    Manager manager String (wildcards accepted in dynamic distribution groups). The recipient's manager.

    У свойства Manager параметр "String", а не Boolean (True или False работать не будет), однако написано что Wildcard приемлем, попробуйте указать Manager -eq '*', возможно в таком случае рассылка будет только на менеджеров.

    New-DynamicDistributionGroup -PrimarySmtpAddress "rassylka@domen.com" -Alias "rassylka" -Name "rassylka" -DisplayName "rassylka" -OrganizationalUnit "OU=OU,DC=DOMEN,DC=COM" -RecipientContainer "OU=OU,DC=DOMEN,DC=,DC=COM" -RecipientFilter "(Manager -eq '*')"

    К сожалению нет возможности проверить, сообщите получилось ли 


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    28 июля 2020 г. 12:06
    Модератор
  • Создать получилось, вот только с таким фильтром в эту группу вошли все учетные записи у которых есть Менеджер.
    28 июля 2020 г. 14:43
  • Нужное вам свойство для фильтра называется не Manger, а ManagedBy:

    New-DynamicDistributionGroup -PrimarySmtpAddress "rassylka@domen.com" -Alias "rassylka" -Name "rassylka" -DisplayName "rassylka" -OrganizationalUnit "OU=OU,DC=DOMEN,DC=COM" -RecipientContainer "OU=OU,DC=DOMEN,DC=,DC=COM" -RecipientFilter "(ManagedBy -eq '*')"


    Слава России!

    28 июля 2020 г. 15:49
  • Нужное вам свойство для фильтра называется не Manger, а ManagedBy:

    New-DynamicDistributionGroup -PrimarySmtpAddress "rassylka@domen.com" -Alias "rassylka" -Name "rassylka" -DisplayName "rassylka" -OrganizationalUnit "OU=OU,DC=DOMEN,DC=COM" -RecipientContainer "OU=OU,DC=DOMEN,DC=,DC=COM" -RecipientFilter "(ManagedBy -eq '*')"


    Слава России!

    Увы, не то..

    Get-DynamicDistributionGroup "Рассылка" | Set-DynamicDistributionGroup -RecipientFilter "(ManagedBy -like '*')"
    $a = Get-DynamicDistributionGroup "Рассылка"
    $a.RecipientFilter
    (Get-Recipient -RecipientPreviewFilter $a.RecipientFilter -OrganizationalUnit $a.RecipientContainer -ResultSize 10000).Count
    
    
    
    
    
    ((ManagedBy -ne $null) -and (-not(Name -like 'SystemMailbox{*')) -and (-not(Name -like 'CAS_{*')) -and (-not(RecipientTypeDetailsValue -eq 'MailboxPlan')) -and (-not(RecipientTypeDetailsValu
    e -eq 'DiscoveryMailbox')) -and (-not(RecipientTypeDetailsValue -eq 'PublicFolderMailbox')) -and (-not(RecipientTypeDetailsValue -eq 'ArbitrationMailbox')) -and (-not(RecipientTypeDetailsVal
    ue -eq 'AuditLogMailbox')) -and (-not(RecipientTypeDetailsValue -eq 'AuxAuditLogMailbox')) -and (-not(RecipientTypeDetailsValue -eq 'SupervisoryReviewPolicyMailbox')))
    0


    Если использовать -eq :

    Get-DynamicDistributionGroup "Рассылка" | Set-DynamicDistributionGroup -RecipientFilter "(ManagedBy -eq '*')"

    Свойство ManagedBy не поддерживает Microsoft.Exchange.Data.TextFilter. Поддерживаются только Microsoft.Exchange.Data.ComparisonFilter и Microsoft.Exchange.Data.ExistsFilter. + CategoryInfo : NotSpecified: (:) [Set-DynamicDistributionGroup], ADFilterException + FullyQualifiedErrorId : [Server=EXCH-03-MSK,RequestId=95ecf1f5-7c35-49ac-aa99-48fd7af427e3,TimeStamp=29.07.2020 6:37:09] [FailureCategory=Cmdlet-ADFilterException] D73242DB,Microsoft .Exchange.Management.RecipientTasks.SetDynamicDistributionGroup + PSComputerName : exch-03-msk.inner.alfaleasing.ru

    Это точно оно? По описанию мне явно не подходит:

    This property identifies the security principal that's the manager of the group.

    29 июля 2020 г. 6:39
  • Ошибка означает, что не поддерживается сравнение по шаблону, а только проверка на равество или существование.  И хотя в выражении для фильтра LDAP (в который реально переводится выражение фильтра динамической группы на PS) аналог -eq '*' - =* - это именно проверка на существование, но, видимо, тут другие правила перевода.

    Попробуйте вместо -eq '* использовать -ne $null


    Слава России!

    29 июля 2020 г. 12:08

  • Попробуйте вместо -eq '* использовать -ne $null

    Так я же уже выкладывал вывод по фильтру сообщением ранее. Посмотрите код выше, там все есть.

    29 июля 2020 г. 12:57
  • Ошибся в имени свойства. Правильно:

    Get-DynamicDistributionGroup "Рассылка" | Set-DynamicDistributionGroup -RecipientFilter {DirectReports -ne $null}


    Слава России!

    • Помечено в качестве ответа Sergey Ya 30 июля 2020 г. 5:51
    29 июля 2020 г. 14:07
  • Ошибся в имени свойства. Правильно:

    Get-DynamicDistributionGroup "Рассылка" | Set-DynamicDistributionGroup -RecipientFilter {DirectReports -ne $null}


    Слава России!

    Очень интересно что получилось.

    Из описания атрибутов, похоже, что DirectReports - это то что нужно.

    2.133 Attribute manager

    This attribute contains the DN of the user who is the user's manager. The manager's user object contains a directReports property that contains references to all user objects that have their manager properties set to this DN.

    2.55 Attribute directReports

    This attribute contains the list of users that directly report to the user. The users that are listed as reports are those that have the property manager property set to this user. Each item in the list is a linked reference to the object that represents the user.



    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    29 июля 2020 г. 23:08
    Модератор
  • Ошибся в имени свойства. Правильно:

    Get-DynamicDistributionGroup "Рассылка" | Set-DynamicDistributionGroup -RecipientFilter {DirectReports -ne $null}


    Слава России!

    Огонь! Спасибо, помогло!
    30 июля 2020 г. 5:51