С помощью Powershell, как заполнить переменную именем объектов, которые я получаю из Get-ChildItem?

С помощью Powershell, как заполнить переменную именем объекта, из которого я получаю Get-ChildItem?

Скажем, например, я пытаюсь получить имена подразделений (чтобы я мог выполнить проверку ввода) в рамках заданной базы поиска.

Я могу легко использовать временную переменную и сделать что-то вроде:

$ValidSites = Get-ChildItem -Path AD:\"OU=SomeOU,DC=contoso,DC=com" | Where-Object { $_.ObjectClass -eq "organizationalUnit" }
$ValidSiteNames = @("","","","","","","","","")

For ($i=0; $i -lt $ValidSites.Length; $i++) {

$ValidSiteNames[$i] = $ValidSites[$i].name

}

Но это хакерство, и я получаю дополнительную переменную, которая мне не нужна или не нужна (а также дополнительные усилия и код).

Я пытался обвязать Select заявление (с | Select $_.name), но это не дает мне ожидаемых результатов (просто возвращает те же объекты, как если бы его там не было), поэтому я не уверен, что еще можно попробовать.

Как мне просто имена этих объектов, возвращаемых Get-ChildItem в массив без лишних усилий и кода, задействованных во временной переменной и для цикла?

1 ответ

Решение

Следующая строка работает для создания массива имен в $ValidSites.

$ValidSites = Get-ChildItem -Path AD:\"OU=SomeOU,DC=contoso,DC=com" | Where-Object { $_.ObjectClass -eq "organizationalUnit" } | select -expand name 
Другие вопросы по тегам