PSCustomObjectの比較
プロパティ名が同じでも -eq で比較するとFalseになる。
プロパティだけ取り出して、Compare-Objectで比較する。
$a = [PSCustomObject]@{ a = "a" } $b = [PSCustomObject]@{ a = "a" } $c = [PSCustomObject]@{ a = "c" } $np = $a | Get-Member -Type NoteProperty | ForEach-Object { $_.Name } (Compare-Object -Property $np $a $b).Count -eq 0 # 等しくない例。Falseになる。 (Compare-Object -Property $np $a $c).Count -eq 0 # Equalsおよび-eqでの比較はFalseになる $a.Equals($b) $a -eq $b
もう少し簡単な方法ないだろうか