Рейтинг:0

Поиск всех учетных записей без домена в proxyAddresses (или Where-Object FilterScript в массиве, который не содержит запись по подстановочному знаку)

флаг in

Я пытаюсь получить список учетных записей Active Directory, у которых нет адреса с заданным доменным именем в их proxyAddresses. Я знаю, что, чтобы найти те, которые делают, я могу сделать:

Get-AdUser -Filter 'proxyAddresses -like ''smtp:*@domain.com'''

Однако обратное не работает, потому что, если у них есть хотя бы одна другая запись в proxyAddresses (и все наши учетные записи имеют, например, адреса X500 и адреса onmicrosoft), она будет соответствовать ей и все равно будет возвращать объект. Я также знаю, что могу сделать что-то вроде:

Get-AdUser -Filter * -Properties proxyAddresses |
  ForEach-Object -Begin { $filteredList = @() } -Process {
    $ не найдено = $ правда
    $_.proxyAddresses | ForEach-Object -Process {
      если ($_ - как 'smtp:*@domain.com') {
        $ не найдено = $ ложь
      }
    }
    если ($ notfound) { $filteredList += $_ }
  }

Есть ли способ сделать это в скрипте Where-Object FilterScript? то есть фильтровать на стороне сервера, а не на стороне клиента? Я пробовал это, чтобы увидеть, могу ли я изменить true/false на «-like», но, похоже, это не сработало, у меня все еще есть все учетные записи:

Get-AdUser -Filter * -Properties proxyAddresses | Where-Object -FilterScript { if ($_.proxyAddresses -like 'smtp:*@domain.com') {$false} else {$true}}

Любые идеи?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.