Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save kevinblumenfeld/9a78ceeb50ee36421ee457d2e0092a99 to your computer and use it in GitHub Desktop.
Save kevinblumenfeld/9a78ceeb50ee36421ee457d2e0092a99 to your computer and use it in GitHub Desktop.
sets PSStandardMember for all input objects
using namespace System.Management.Automation
function Set-StandardMember {
[CmdletBinding()]
param(
[parameter(Mandatory, ValueFromPipeline)]
[object] $InputObject,
[parameter(Mandatory)]
[string[]] $DefaultProperties
)
begin {
[PSMemberInfo[]] $info = [PSPropertySet]::new('DefaultDisplayPropertySet', $DefaultProperties)
$memberSet = [PSMemberSet]::new('PSStandardMembers', $info)
}
process {
$InputObject.PSObject.Members.Add($memberSet)
$InputObject
}
}
$InputObject = [pscustomobject]@{
foo = 123
bar = 456
}
$InputObject | Set-StandardMember -DefaultProperties foo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment