使用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循环?
答案 0 :(得分:1)
以下一行是为了在$ ValidSites中创建一个名字数组。
$ValidSites = Get-ChildItem -Path AD:\"OU=SomeOU,DC=contoso,DC=com" | Where-Object { $_.ObjectClass -eq "organizationalUnit" } | select -expand name