С помощью 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