Если вы ищете строку 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
.