Arrays 我不知道';我不明白为什么我的数组会产生我能';不使用

Arrays 我不知道';我不明白为什么我的数组会产生我能';不使用,arrays,powershell,Arrays,Powershell,我正在尝试创建可以使用Get Computer处理的计算机列表。 这里有两种创建列表的方法。 我不明白它们为什么不同,也不明白我如何才能得到两种方法的结果,使其具有相同的值 我的代码是: $ComputerList1 = "WS7-HUR-MANAGER","WS7-HUR-NURSE" $ComputerList2 = Get-ADComputer -Filter {Name -like "WS7-HUR*"} | Select` Name Get-Variable

我正在尝试创建可以使用Get Computer处理的计算机列表。 这里有两种创建列表的方法。 我不明白它们为什么不同,也不明白我如何才能得到两种方法的结果,使其具有相同的值

我的代码是:

    $ComputerList1 = "WS7-HUR-MANAGER","WS7-HUR-NURSE"
    $ComputerList2 = Get-ADComputer -Filter {Name -like "WS7-HUR*"} | Select`   Name
    Get-Variable ComputerList1 | Select Name, Value
    Get-Variable ComputerList2 | Select Name, Value
输出:

Name              Value                                           
----              -----                                           
ComputerList1     {WS7-HUR-MANAGER, WS7-HUR-NURSE}                
ComputerList2     {@{Name=WS7-HUR-MANAGER}, @{Name=WS7-HUR-NURSE}} 

$ComputerList1
包含字符串数组对象。
$ComputerList2
包含一个自定义PowerShell对象,该对象由Get-ADComputer返回,然后经过筛选,仅包含其
名称
属性

您可以通过管道化每个成员来查看两者之间的差异

$ComputerList1 | Get-Member
$ComputerList2 | Get-Member
根据另一个答案,您可以使用
选择对象
cmdlet的
-ExpandProperty
开关获取对象的一个属性,并将其内容作为其类型的新对象返回。例如,如果属性包含一个字符串,那么您将得到一个字符串对象。例如:

 $ComputerList2 = Get-ADComputer -Filter {Name -like "WS7-HUR*"} | Select ExpandProperty Name
或者,您也可以直接访问属性并将其分配给变量:

$ComputerList2 = (Get-ADComputer -Filter {Name -like "WS7-HUR*"}).Name

谢谢,伙计们。你太棒了。经过三天的研究,你在几分钟内就解决了我的问题。荣誉
$ComputerList2 = Get-ADComputer -Filter {Name -like "WS7-HUR*"} | Select -ExpandProperty Name