PowerShell中的PropertyGrid不显示所有属性

时间:2013-06-03 14:13:13

标签: powershell propertygrid

我正在尝试使用Windows Forms使用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达到我期望的数字,但是仍然没有出现其他属性。我实际上并不想像本例中那样显示所有属性,但添加特定属性似乎也不起作用。有没有办法按照我想要的方式完成这项工作,或者我是否需要寻找替代解决方案?

1 个答案:

答案 0 :(得分:0)

不确定您使用Show-Object进行了哪些规划,但Lonely Administrator做了一个相当不错的功能,与Show-Object做同样的事情。它被称为Out-GridList。也许如果您看到该脚本如何工作,您将能够修复您的脚本。例如,我只是将Out-GridList函数复制到测试脚本并在同一个脚本中调用该函数。

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

Output from Out-GridList