none
Не работает фильтр в Get-ADComputers RRS feed

  • Вопрос

  • Доброго времени суток!

    Пишу небольшой скрипт на powershell, наткнулся на ошибки. Если все сократить до минимума то эти два коммандлета ничего не возвращают:

    Get-ADComputer -Filter {DistinguishedName -like "*Computers*"}

    Get-ADComputer -Filter {DistinguishedName -notlike "*Computers*"}

    Почему?

    30 июля 2019 г. 17:06

Ответы

  • Доброго времени суток!

    Пишу небольшой скрипт на powershell, наткнулся на ошибки. Если все сократить до минимума то эти два коммандлета ничего не возвращают:

    Get-ADComputer -Filter {DistinguishedName -like "*Computers*"}

    Get-ADComputer -Filter {DistinguishedName -notlike "*Computers*"}

    Почему?

    Потому что синтаксис (тип данных в базе данных AD) атрибута distingushedName - не строка, а (внезапно) - Distigushed Name (или DN). Искать такие атрибуты по совпадению подстроки LDAP (все фильтры командлетов AD преобразуются для поиска в фильтры LDAP) не поволяет. Как сказано в статье в TechNet Wiki: "The wildcard character "*" is allowed, except when the AD attribute is a DN attribute. Examples of DN attributes are distinguishedName, manager, directReports, member, and memberOf. "


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



    • Изменено M.V.V. _ 30 июля 2019 г. 19:31
    • Помечено в качестве ответа Rinat Moustafin 31 июля 2019 г. 9:53
    30 июля 2019 г. 19:28

Все ответы

  • хз, смотреть лень, завтра гляну если не ответят..

    а вы откудава такие скобочки взяли?

    30 июля 2019 г. 17:55
  • От безысходности, изначально был такой вариант:

    Get-ADComputer -Filter 'DistinguishedName -like "*Computers*"'
    Get-ADComputer -Filter 'DistinguishedName -notlike "*Computers*"'

    с тем же результатом
    30 июля 2019 г. 18:05
  • Доброго времени суток!

    Пишу небольшой скрипт на powershell, наткнулся на ошибки. Если все сократить до минимума то эти два коммандлета ничего не возвращают:

    Get-ADComputer -Filter {DistinguishedName -like "*Computers*"}

    Get-ADComputer -Filter {DistinguishedName -notlike "*Computers*"}

    Почему?

    Get-ADComputer * -Properties DistinguishedName | Where {$_.DistinguishedName -like "*Computers*"}
    Из простого можно так как написано выше, из сложного вам подсказали про скобки, так как по идее должны быть кавычки (пример 2, 3)


    The opinion expressed by me is not an official position of Microsoft


    30 июля 2019 г. 18:06
    Модератор
  • Доброго времени суток!

    Пишу небольшой скрипт на powershell, наткнулся на ошибки. Если все сократить до минимума то эти два коммандлета ничего не возвращают:

    Get-ADComputer -Filter {DistinguishedName -like "*Computers*"}

    Get-ADComputer -Filter {DistinguishedName -notlike "*Computers*"}

    Почему?

    Потому что синтаксис (тип данных в базе данных AD) атрибута distingushedName - не строка, а (внезапно) - Distigushed Name (или DN). Искать такие атрибуты по совпадению подстроки LDAP (все фильтры командлетов AD преобразуются для поиска в фильтры LDAP) не поволяет. Как сказано в статье в TechNet Wiki: "The wildcard character "*" is allowed, except when the AD attribute is a DN attribute. Examples of DN attributes are distinguishedName, manager, directReports, member, and memberOf. "


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



    • Изменено M.V.V. _ 30 июля 2019 г. 19:31
    • Помечено в качестве ответа Rinat Moustafin 31 июля 2019 г. 9:53
    30 июля 2019 г. 19:28