使用 Powershell,如何使用从 Get-ChildItem 获得的对象名称填充变量?

With Powershell, how do I populate a variable with the name of objects I get from 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

}

但是,这很老套,我最终得到了一个我不想要或不需要的额外变量(以及额外的努力和代码)。

我试过使用 Select 语句(使用 | Select $_.name),但这并没有给我预期的结果(只是 returns 相同的对象,就好像它不是' t 那里),所以我不确定还能尝试什么。

如何将 Get-ChildItem 返回的这些对象的名称放入数组中,而无需额外的工作和涉及临时变量和 for 循环的代码?

下面的行正在为 $ValidSites 创建一个名称数组。

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