问题:在Sapien Powershell Studio中使用以下代码时,计算机名称会正确返回,但计算机描述会返回为一行。换句话说,所有计算机描述都不是分开的,而是显示为一个长列表。
如果删除了Out-String,我只返回一个计算机描述。
我在输出到文本框之前使用了基本相同的代码并且没有问题。
$searchbutton_Click={
#TODO: Place custom script here
$computerlist.Items.clear()
$username = "*" + $searchbox.text + "*"
$computers = Get-ADComputer -Filter { Description -like $username } -
Properties description | select -expand name
foreach ($computer in $computers)
{
$compdescription = (Get-ADComputer -Filter { Description -like $username
} -Properties description).description | out-string
$results = New-Object System.Windows.Forms.listviewitem($computer)
$results.subitems.add($compdescription)
$computerlist.Items.Add($results)
}
}
答案 0 :(得分:0)
有两件事是错的。
(1)您对Get-ADComputer使用了两次相同的查询。为什么?我认为第二个应该是下面的东西。如果没有,则存储所有计算机的描述的$ compdescription值。
(Get-ADComputer -Filter { name -like $computer
} -Properties description).description
(2)关于返回一个包含所有描述的大字符串的问题。来自文档:
默认情况下,Out-String会累积字符串并将其作为a返回 单个字符串,但您可以使用stream参数进行指导 Out-String一次返回一个字符串。
在MSDN
了解详情