Public/Add-DefaultDisplaySet.ps1

function Add-DefaultDisplaySet {
    [CmdletBinding(SupportsShouldProcess)]
    Param (
    [Parameter(Mandatory,ValueFromPipeline)]
    [object]$Object,
    [Parameter(Mandatory)]
    [array]$DefaultDisplaySet, # Configure a default display set
    [string]$TypeName # Give this object a unique typename
    )

    process {
    # https://learn-powershell.net/2013/08/03/quick-hits-set-the-default-property-display-in-powershell-on-custom-objects/
    if ($TypeName) {
        $Object.PSObject.TypeNames.Insert(0,$TypeName)
    }
    # Create the default property display set
    $DefaultDisplayPropertySet = New-Object System.Management.Automation.PSPropertySet(
        'DefaultDisplayPropertySet',[string[]]$DefaultDisplaySet
    )
    $PSStandardMembers = [System.Management.Automation.PSMemberInfo[]]@($DefaultDisplayPropertySet)
    $Object | Add-Member MemberSet PSStandardMembers $PSStandardMembers
    Write-Output $Object
    }
}