private/Test-MatchFilter.ps1
|
function Test-MatchFilter { param([PSObject]$Object, [hashtable]$Match) foreach ($kvp in $Match.GetEnumerator()) { $prop = Get-ObjectProperty -Object $Object -PropertyName $kvp.Name $matchesValue = if ($null -eq $kvp.Value) { -not $prop.HasValue } elseif (-not $prop.HasValue) { $false } else { $prop.Value -eq $kvp.Value } if (-not $matchesValue) { return $false } } return $true } |