Public/Get-PropertyValueOrDefault.ps1
function Get-PropertyValueOrDefault { [Alias('?.')] param ( [Parameter(Mandatory, ValueFromPipeline)] [AllowNull()] [object[]]$Object, [Parameter(Mandatory, Position = 0)] [string]$PropertyName, [Parameter(Position = 1)] [object]$DefaultValue = $null ) process { foreach ($Item in $Object) { if ($Item -eq $null) { $DefaultValue } if ($Item | Get-Member -MemberType NoteProperty, Property -Name $PropertyName) { $Item.$PropertyName } else { $DefaultValue } } } } |