source/public/Compare-InboxRule/Compare-InboxRule.ps1
Function Compare-InboxRule { [cmdletbinding()] Param( [string]$Mailbox, [PSObject]$ReferenceRule, [PSObject]$DifferenceRule ) $properties = (($ReferenceRule | Get-Member -MemberType Property, NoteProperty).Name) $properties += (($DifferenceRule | Get-Member -MemberType Property, NoteProperty).Name) $properties = $properties | Sort-Object | Select-Object -Unique $excludeProperty = @('RuleState', 'PSComputerName', 'RunSpaceID', 'PSShowComputerName') $diffs = @() foreach ($property in $properties) { if ($excludeProperty -notcontains $property) { $diff = Compare-Object $ReferenceRule $DifferenceRule -Property $property if ($diff) { $diffprops = [ordered]@{ Mailbox = $Mailbox RuleID = $ReferenceRule.Identity RuleName = $DifferenceRule.Name PropertyName = $property OldValue = ($diff | Where-Object { $_.SideIndicator -eq '<=' }).$property NewValue = ($diff | Where-Object { $_.SideIndicator -eq '=>' }).$property } $diffs += New-Object PSObject -Property $diffprops } } } return $diffs } |