Private/Get-PropertyOrDefault.ps1
|
function Get-PropertyOrDefault { <# .SYNOPSIS Read a property from a hashtable or object without tripping strict mode. #> [CmdletBinding()] param( [Parameter(Mandatory)] [AllowNull()] $InputObject, [Parameter(Mandatory)] [string]$Name, [Parameter()] $Default = $null ) if ($null -eq $InputObject) { return $Default } if ($InputObject -is [System.Collections.IDictionary]) { if ($InputObject.Contains($Name)) { return $InputObject[$Name] } return $Default } $property = $InputObject.PSObject.Properties[$Name] if ($property) { return $property.Value } return $Default } |