Oto blogu z Munro Kirk, który wyjaśnia, w jaki sposób skrypt może ustawić DefaultDisplayPropertySet na jego obiektów wyjściowych:Czy można ustawić obiekt DefaultDisplayPropertySet w skrypcie PowerShell v2?
Essential PowerShell: Define default properties for custom objects
Jego technika i przykładowy kod nie pojawi się do pracy w PowerShell v2. (Uwaga: Mam zainstalowane PowerTab i PSCX - być może te mogą przeszkadzać).
Ktoś wie, jak uruchomić to w PowerShell v2?
UPDATE: Oto przykład z blogu, który nie działa dla mnie (uwaga, mam Poprawiono pojedyńczych cudzysłowów):
$myObject = New-Object PSObject
$myObject | Add-Member NoteProperty Name 'My Object'
$myObject | Add-Member NoteProperty Property1 1
$myObject | Add-Member NoteProperty Property2 2
$myObject | Add-Member NoteProperty Property3 3
$myObject | Add-Member NoteProperty Property4 4
$myObject | Add-Member NoteProperty Property5 5
$myObject
## Output:
# Name : My Object
# Property1 : 1
# Property2 : 2
# Property3 : 3
# Property4 : 4
# Property5 : 5
$defaultProperties = @('Name','Property2','Property4')
$defaultDisplayPropertySet = New-Object System.Management.Automation.PSPropertySet('DefaultDisplayPropertySet',[string[]]$defaultProperties)
$PSStandardMembers = [System.Management.Automation.PSMemberInfo[]]@($defaultDisplayPropertySet)
$myObject | Add-Member MemberSet PSStandardMembers $PSStandardMembers
$myObject
## Output:
# Name : My Object
# Property1 : 1
# Property2 : 2
# Property3 : 3
# Property4 : 4
# Property5 : 5
wyjście nie powinno być to samo po dodaniu DefaultDisplayPropertySet (tzn. powinien mieć tylko nazwę, właściwość2 i właściwość4).
I s należy również zauważyć, że używam PowerShell v2 w systemie Vista, za pośrednictwem Microsoft Windows Management Framework RC. http://blogs.msdn.com/powershell/archive/2009/08/14/powershell-2-0-for-windows-vista-and-windows-server-2008-release-candidate.aspx – totorocat