function Test-ConfigurationDataItemKeyMatch { [CmdletBinding()] Param( [AllowNull()] $Left, [AllowNull()] $Right, [Parameter(Mandatory=$true)] [String[]] $KeyNames ) if($KeyNames.Count -eq 0){ return $false } foreach($KeyName in $KeyNames){ if(-not (Test-ConfigurationDataItemContainsKey -Item $Left -KeyName $KeyName)){ return $false } if(-not (Test-ConfigurationDataItemContainsKey -Item $Right -KeyName $KeyName)){ return $false } if((Get-ConfigurationDataItemValue -Item $Left -KeyName $KeyName) -ne (Get-ConfigurationDataItemValue -Item $Right -KeyName $KeyName)){ return $false } } return $true }