Get-ADComputer для возврата свойства, отличного от запрашиваемого? - PullRequest
0 голосов
/ 10 июля 2019

Я использую Get-ADComputer для поиска в моем домене определенной строки в свойстве Location.Однако, когда я его нахожу, я хочу вернуть свойство Name, в котором была найдена строка.

Моя компания использует Powershell версии 5.1, если это имеет значение.

Я уже пробовалИмя конвейера после "select-string -Pattern 'example'", но оно просто ничего не возвращает, я предполагаю, что оно думает, что я ищу свойство в Location, а не результат Get-ADComputer.Вероятно, ответом будет кто-то, кто скажет мне сохранить весь Get-ADComputer как переменную, но я не уверен, каков предел данных для переменных Powershell, и, похоже, я буду анализировать довольно много данных.

Get-ADComputer -properties Location -SearchBase "OU=E, DC=M" -filter 'Name -like "*"' | select Location | select-string -pattern "example"

Мой текущий результат - это все свойство Location, но мой желаемый результат - это свойство Name при поиске местоположения.Было бы еще лучше, если бы я мог вернуть оба.

1 Ответ

1 голос
/ 10 июля 2019

Если вы ищете строку example в пределах местоположения, вы можете выполнить фильтрацию по местоположению и затем вывести имя.

Get-ADComputer -SearchBase "OU=E, DC=M" -Filter "location -like '*example*'" | Select-Object Name

Если вы ищете строку example в пределах Name, вы можете фильтровать по Name и по-прежнему выводить имя.

Get-ADComputer -SearchBase "OU=E, DC=M" -Filter "Name -like '*example*'" | Select-Object Name

Если вы хотите вывести больше свойств, включая местоположение и имя, вам нужно добавить переключатель -properties для обработки местоположения.

Get-ADComputer -Properties location -SearchBase "OU=E, DC=M" -Filter "Name -like '*example*'" | Select-Object Name,location

Если вы хотите найти строку example в любом свойстве, которое выводится по умолчанию из команды Get-ADComputer, вам понадобится что-то вроде следующего:

Get-ADComputer -Properties location -SearchBase "OU=E, DC=M" -Filter * | Where-Object { $_ | Out-String | Select-String -pattern "example"}

Объяснение:

Select-Object выведет пользовательский объект со свойствами, которые вы выбрали. -Filter в командах AD имеет ограниченное количество доступных операторов. Если вы ищете простую строку, знаете, какое свойство содержит строку, но не знаете, где находится строка в строке, используйте оператор -like. Символы * предназначены для подстановочных знаков. -Filter почти всегда быстрее, чем ввязываться во что-то еще, поэтому вы должны использовать его, если можете.

Where-Object { $_ } обрабатывает текущий объект ($_) в конвейере, который включает в себя все свойства, переданные в команду. Если вы хотите сравнить только одно свойство, то $_ должно стать $_.propertyname.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...