使用 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
使用 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