0

我正在研究使用 Windows 窗体使用 PowerShell 制作 GUI,并且我一直在搞乱非常有用且看起来很漂亮的 PropertyGrid 对象,但我不确定它是否喜欢与 PowerShell 一起玩得很好。我尤其在 Active Directory cmdlet 上遇到了一些问题。

我想在 PropertyGrid 中显示一个 AD 用户对象。出于测试目的,我创建了这个简单的函数:

Function Show-Object
{
    $Form = New-Object "System.Windows.Forms.Form"
    $Form.Size = New-Object System.Drawing.Size @(600,600)
    $PropertyGrid = New-Object "System.Windows.Forms.PropertyGrid"
    $PropertyGrid.Dock = [System.Windows.Forms.DockStyle]::Fill
    $Form.Text = "$args"
    $PropertyGrid.SelectedObject = $args[0]
    $Form.Controls.Add($PropertyGrid)
    $Form.TopMost = $true
    $Form.ShowDialog()
}

然后我跑

PS> Show-Object (Get-ADUser Testing)

它完全显示了我期望它显示的内容。另一方面,当我运行这个

PS> Show-Object (Get-ADUser Testing -Properties *)

结果 PropertyGrid 中的 PropertyCount 上升到我期望的数字,但其他属性仍然没有出现。我实际上并不想像此示例中那样显示所有属性,但添加特定属性似乎也不起作用。有没有办法让这项工作以我想要的方式工作,还是我需要寻找替代解决方案?

4

1 回答 1

0

不确定您的计划是什么,Show-Object但是Lonely Administrator做了一个非常好的功能,可以和您做同样的事情Show-Object。它被称为Out-GridList。也许如果您了解该脚本的工作原理,您将能够修复您的脚本。因此,例如,我只是将Out-GridList函数复制到测试脚本并在同一个脚本中调用该函数。

function Out-GridList {
...
}
Get-ADUser Testing -Properties * | Out-GridList

Out-GridList 的输出

于 2013-06-03T22:51:05.230 回答