Powershell 目录搜索到数组以填充Windows窗体datagrid

Powershell 目录搜索到数组以填充Windows窗体datagrid,powershell,Powershell,我正在通过Powershell创建一个windows窗体,用户可以在其中搜索注册给某人的计算机,或搜索某人的注册计算机。注册用户存储在说明字段中,计算机名称存储在名称字段中$SearchIn保存要搜索的值,$field指示要搜索的字段 我可以通过控制台获得想要的结果,但我正试图将结果推送到windows窗体上的datagrid视图中。下面脚本中的datagrid称为$dataGrid1。下面我尝试将目录服务搜索推送到一个数组,然后将datagrid数据源设置为一个数组。我认为因为$objectC

我正在通过Powershell创建一个windows窗体,用户可以在其中搜索注册给某人的计算机,或搜索某人的注册计算机。注册用户存储在
说明
字段中,计算机名称存储在
名称
字段中
$SearchIn
保存要搜索的值,
$field
指示要搜索的字段

我可以通过控制台获得想要的结果,但我正试图将结果推送到windows窗体上的datagrid视图中。下面脚本中的datagrid称为
$dataGrid1
。下面我尝试将目录服务搜索推送到一个数组,然后将datagrid数据源设置为一个数组。我认为因为
$objectComputer
是一个对象而不是数组,所以我必须使用
新对象System.Collections.ArrayList
创建一个数组,并使用
addrange
方法将其填充到
$objComputer
对象

最终,无论我尝试什么,我都会得到一个空白的datagrid视图。有人能给我指出正确的方向吗

函数获取信息
{
参数($SearchIn,$Field)
如果($field-eq“Name”){
$filter=“name=*$SearchIn*”
}
其他的
{
$filter=“description=*$SearchIn*”
}
$strCategory=“计算机”
$objDomain=新对象System.DirectoryServices.DirectoryEntry
$objSearcher=新对象System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot=$objDomain
$objSearcher.Filter=$Filter
$colResults=$objSearcher.FindAll()
$objComputer=@()
foreach($colResults中的objResult)
{
$objComputer+=($objResult.Properties.item(“名称”),$objResult.Properties.item(“说明”))
$array=新对象System.Collections.ArrayList($null)
$array=.addrange($objComputer)
$dataGrid1.DataSource=$array
$fComputerSearch.refresh()

}#End Get Info
Uff如果您的代码很难阅读,下次请检查括号{}

我认为结局是错误的:

$array=New-Object System.Collections.ArrayList($null)
    $array=.addrange($objComputer)

    $dataGrid1.DataSource = $array
    $fComputerSearch.refresh()
我想应该是这样的:

# the fastest way to create empty ArrayList
[System.Collections.ArrayList]$list = @()
$list.AddRange($objComputer)

$dataGridView = New-Object System.Windows.Forms.DataGridView -Property @{
    Size=New-Object System.Drawing.Size(1024,768)
    ColumnHeadersVisible = $true
    DataSource = $list
}

$form.Controls.Add($dataGridView)
$form.ShowDialog()