Назад | Перейти на главную страницу

EMS: фильтрация результатов Get-Mailbox в базу данных с помощью '-like' и подстановочных знаков

Конечная цель здесь - создать динамические группы рассылки на основе аналогичных баз данных Exchange. У нас есть почтовые ящики для персонала, разделенные на несколько баз данных по регионам, и присвоение имен следует установленным соглашениям.

В качестве доказательства концепции я использовал команду «Get-Mailbox» с операторами -Filter и -or для вывода нескольких баз данных, и она работает. Результат примерно такой:

Get-Mailbox -Filter {
(
(Database -eq 'CN=DBname01,CN=therestoftheDistinguishedName,DC=com') 
-or 
(Database -eq 'CN=DBname02,CN=therestoftheDistinguishedName,DC=com')
)
}

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

Документация MS Вот говорит, что свойство homeMDB / Database совместимо с подстановочными знаками ...

Итак, теоретически это должно работать и давать тот же результат:

Get-Mailbox -Filter {(Database -like "CN=DBname*")}

Но эта команда не возвращает результатов .... нет ошибок ... ничего.

Разве -like просто не поддерживается? Я делаю что-то неправильно?

P.S. «-Filter» будет заменен на «-RecipientFilter» для команды New-DynamicDistributionGroup. Get-Mailbox используется для проверки правильности работы моего фильтра.

Поскольку вы собираетесь использовать параметр RecipientFilter для New-DynamicDistributionGroup, я могу понять, почему вы задали вопрос.

Я могу заставить его работать с атрибутами, отличными от «базы данных». Увидеть ниже:

New-DynamicDistributionGroup "Test Group G" -RecipientFilter {DisplayName -like "G*"} -OrganizationalUnit $OU
$vargroup = Get-DynamicDistributionGroup "Test Group G"
Get-Recipient -RecipientPreviewFilter $varGroup.RecipientFilter

Возвращает список почтовых пользователей (ящики, контакты и т. Д.), Которые включены в новую группу. Но когда вы запускаете его с параметром RecipientFilter {Database -like "partialDBname*"}, те же команды выше также ничего не возвращают, как и Get-mailbox -Filter {Database -eq "DBname"} ничего не возвращает. Возможно, вам придется сделать это не с атрибутом базы данных. Когда вы смотрите на параметр Filter на странице TechNet командлета Get-Mailbox, он фактически указывает на ту же страницу «Filterable properties», на которую вы ссылались.

Изменить: похоже этот это вещь. Это старый блог MS, но я не видел ничего обновленного для будущих версий Exchange. Похоже, фильтрация по базам данных невозможна. Однако вы можете использовать другие атрибуты. Вы сказали, что они в разных регионах. Вы можете использовать групповую политику для добавления / замены атрибутов пользовательских объектов.

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

Попробуйте эту команду:

get-mailbox |where{$_.database -like 'DBname*'}|ft name,database