【问题标题】:With Powershell, how do I populate a variable with the name of objects I get from Get-ChildItem?使用 Powershell,如何使用从 Get-ChildItem 获得的对象名称填充变量?
【发布时间】:2016-07-21 06:03:43
【问题描述】:

使用 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 返回的这些对象的名称放入一个数组中,而不需要额外的工作和涉及临时变量和 for 循环的代码?

【问题讨论】:

    标签: arrays powershell powershell-4.0 get-childitem


    【解决方案1】:

    下面这行代码正在 $ValidSites 中创建一个名称数组。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-23
      • 2016-12-17
      • 1970-01-01
      相关资源
      最近更新 更多