2013-06-03 76 views
0

我正在鑽研使用Windows窗體制作GUI的PowerShell,並且我一直在討論非常有用和看起來很快速的PropertyGrid對象,但我不確定它是否喜歡用PowerShell玩非常好。我特別在Active Directory cmdlet中遇到了一些問題。PowerShell中的PropertyGrid不顯示所有屬性

我想在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 *) 

的PropertyCount PropertyGrid中上升到我期望的數量,但附加屬性仍然沒有出現。我實際上並不想顯示這個例子中的所有屬性,但是添加特定的屬性似乎也不起作用。有沒有辦法按照我想要的方式進行工作,還是需要尋找替代解決方案?

回答

0

不知道你打算與Show-Object,但Lonely Administrator做了一個相當不錯的功能,做你的Show-Object做同樣的事情。它叫做Out-GridList。也許如果你看到這個腳本是如何工作的,你可以修復你的腳本。例如,我只是將Out-GridList函數複製到測試腳本中,並在同一腳本中調用該函數。

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

Output from Out-GridList

相關問題