Powershell:如何引用select中的列



我正在使用PowerShell 5.1迭代active directory中的计算机列表,我正在努力解决一些应该很简单的问题。

在下面的代码中,我将在foreach循环中为每台计算机选择名称和描述。我应该如何在循环中单独引用名称和描述?

$OU=@('OU=...') 
$computers = $OU | foreach {Get-ADComputer -filter {
Name -notlike 'xxx*' 
-and Name -notlike 'yyy*' 
} -searchbase $_  -Properties description | Select name, description }

foreach ($computer in $computers) {
$computerName = $computer | select -ExpandProperty name
$computerDescription =  $computer | select -ExpandProperty description
Write-Host "Host: $computerName [$computerDescription]"
}

我能够使用select -ExpandProperty使其工作,但这似乎不必要地复杂。$computer变量包含如下键/值对:

@{name=ABCDE12345; description=Kiosk PC [Domain Separated]}

我尝试使用点符号$computer.name $computer.description,但点被忽略并被视为文本。

我试过在谷歌上搜索这个,但我是PowerShell的新手,不知道如何表达我的问题!

我尝试使用点表示法$computer.name $computer.description,但点被忽略并被视为文本。

字符串扩展仅适用于简单变量引用。如果要取消引用字符串表达式中的属性,则需要子表达式运算符$():

"Host: $($computer.name) [$($computer.description)]"

PowerShell现在将在解析字符串值时单独评估子表达式

相关内容

  • 没有找到相关文章

最新更新