我正在研究使用 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 上升到我期望的数字,但其他属性仍然没有出现。我实际上并不想像此示例中那样显示所有属性,但添加特定属性似乎也不起作用。有没有办法让这项工作以我想要的方式工作,还是我需要寻找替代解决方案?