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

时间:2016-07-20 21:21:04

标签: arrays powershell powershell-v4.0 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),但这并没有给我预期的结果(只返回相同的对象,就好像它不在那里),所以我我不知道还有什么可以尝试的。

我如何将Get-ChildItem返回的这些对象的名称放入数组中,而不需要额外的工作量和代码参与temp变量和for循环?

1 个答案:

答案 0 :(得分:1)

以下一行是为了在$ ValidSites中创建一个名字数组。

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