The_Exchange_Team
Here are some of the challenges we found using the DCS for migrations in the last few months:
- The DCS is calculated on every sync so if you perform an incremental/delta sync and the DCS is Perfect, it doesn't guarantee that the DCS will remain as such when you perform final cutover. We have many examples where DCS changes from Perfect/Good to Investigate on final cutover when the delta sync was performed minutes earlier and had a Perfect/Good score.
- There is no "limit" to how many items are considered before the score is set to Investigate. Again, we have many examples where DCS is set to poor for a single CorruptFolderRule, ACL or another transient error.
- The "SkippedItemApprovalTime" duration - in some cases this has to be set multiple times before MRS accepts the "approval". One indicator that the approval was not "accepted" is to watch the StatusDetail of Get-MoveRequestStatistics and if it's "stuck" on WaitingForJobPickup for too long then you have to Suspend the move request, set the ApprovalTime again and Resume the move request.
Here are a couple of examples of bad item types that are not considered as impactful and will trigger a DCS of “Good” (instead of “Investigate”) when encountered:
Orphaned delegate permissions where the user was removed from Active Directory (for example, the delegate left the company) but the delegate’s permission was not removed from the mailbox being migrated and the permission cannot be mapped to a valid user account.
These permission failures (Source/Target Principal Mapping Exceptions) will typically not cause a score of Investigate. We will get migration failed when reaching 100,000 corrupt ACLs.
We had the exact opposite experience where we had scores of "Investigate" due to as few as 2 CorruptACL items.
We saved all the XMLs that we generated and are happy to share with the Exchange Team. We understand why DCS was introduced but feel that there is still a lot of work left making it "usable" for admins who have to migrate thousands of mailboxes at a time. Our case with MS on how to best address DCS went unresolved because there was so little internal information on it that the support engineers couldn't help us. Their attempts to get more info from product team was met with "it's working as it should" even though we presented many instances where it doesn't appear to be working as designed.