Hello,
Currently we are in the middle of a migration project. We are migrating users from child domains to the root domain of one organization.
The user accounts are migrated with powershell using Move-ADObject cmdlet. This works as expected. The SIDHistory attribute is updated correctly.
Recently we received complaints from some *migrated* users - they lost their default/custom file associations. This happens only on Windows 8/Windows 8.1.
What happens:
- the user is migrated and logs on
- her profile loads and everything's preserved (as expected)
- the user clicks on a .jpeg file (previously associated with program XYZ)
- OS asks the user to choose a program to open the file with
- the user chooses a default program XYZ and the file opens
- when the user clicks on a .jpeg file again - OS asks to choose a program again
i.e. the settings are not preserved.
Our investigation shows that it is connected with the UserChoice registry key and the HASH value under HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.SomeExt
According to this blog the HASH is calculated based on user's SID. But after the migration the user has new SID and the HASH becomes invalid and we hit this:
"However In Win 8, the registry changes are verified by a hash (unique per user and app) that detects tampering by apps. In the absence of a valid hash, we ignore the default in the registry."
Currently deleting the UserChoice key for all associations solves the problem. But the user has to make all her customizations again which is undesirable.
Is there any supported way to fix this? Why the OS doesn't update the HASH after the first logon when the SID has changed as it updates the SID for the ProfileList key?
This could become big issue in large migrations.