Private/Get-MetadataHash.ps1
Function Get-MetadataHash { param ( [Microsoft.Xrm.Tooling.Connector.CrmServiceClient]$targetConn, [Microsoft.Xrm.Tooling.Connector.CrmServiceClient]$sourceConn ) Write-Verbose "Getting source metadata..." $sourceMetadata = Get-CrmEntityAllMetadata -Conn $sourceConn -EntityFilters All Write-Verbose "Getting target metadata..." $targetMetadata = Get-CrmEntityAllMetadata -Conn $targetConn -EntityFilters All Write-Verbose "Generating hashes from metadata..." $Metadata = @{ "Source" = @{ "All" = $sourceMetadata | MetadataToHash; "Attributes" = $sourceMetadata.Attributes | MetadataToHash; "BySchemaName" = @{ "All" = $sourceMetadata | MetadataToHash -BySchemaName; "Attributes" = $sourceMetadata.Attributes | MetadataToHash -BySchemaName; } }; "Target" = @{ "All" = $targetMetadata | MetadataToHash; "Attributes" = $targetMetadata.Attributes | MetadataToHash; "BySchemaName" = @{ "All" = $targetMetadata | MetadataToHash -BySchemaName; "Attributes" = $targetMetadata.Attributes | MetadataToHash -BySchemaName; } } } Write-Output $Metadata } |