Public/Set-DefaultDisplayPropertySet.ps1

function Set-DefaultDisplayPropertySet {
    [CmdletBinding()]
    Param (
    [Parameter(Mandatory,ValueFromPipeline)]
    [object[]]$Object,
    [Parameter(Mandatory)]
    [string[]]$Properties,
    [string]$TypeName
    )
    # https://learn-powershell.net/2013/08/03/quick-hits-set-the-default-property-display-in-powershell-on-custom-objects/
    process {
    foreach ($o in $Object) {
        if ($TypeName) {
        $o.PSObject.TypeNames.Insert(0,$TypeName)
        }
        # Create the default property display set
        $DefaultDisplayPropertySet = New-Object System.Management.Automation.PSPropertySet(
        'DefaultDisplayPropertySet',[string[]]$Properties
        )
        $PSStandardMembers = [System.Management.Automation.PSMemberInfo[]]@($DefaultDisplayPropertySet)
        $Params = @{
        MemberType    = 'MemberSet'
        Name        = 'PSStandardMembers'
        Value        = $PSStandardMembers
        Force        = $True
        }
        $o | Add-Member @Params
        Write-Output $o
    }
    }
}