2016-07-20 5 views
0

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

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

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

$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 

} 

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

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

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

ответ

1

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

$ValidSites = Get-ChildItem -Path AD:\"OU=SomeOU,DC=contoso,DC=com" | Where-Object { $_.ObjectClass -eq "organizationalUnit" } | select -expand name