System Center Configuration Manager – Keep User Domain Profile after reloading

The issue:

A Task sequence was used to reload a machine from Windows 7/10 to Windows 10 that has User Data on the D: Drive and Operating system on the C: Drive. After the machine was added to the domain the user data was put back to the D: drive but upon first login a New user profile was created with the same name but followed by a “.DOMAIN”. The data would have had to be copied over manually.

The Investigation

Upon further investigation, we could see the profile capture method was a batch file that exports a registry key (From a fresh/clean Windows 10 machine). This was then added as a package in the Task Sequence that runs after the domain join step.

Why this will not work?

Capturing a profile list from a fresh Windows install will only keep the profiles from the original clean Windows 10 machine. It will never remember the SIDs of users added by Active Directory to machines that have been used in the environment.

The Solution

Exporting the profile needs to take place on a “per machine” basis.

This can be achieved by running a command line and storing that profile reg key in a variable that could be referenced later in the task sequence after the machine has been added to the domain.

reg export “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList” %_SMSTSUserStatePath%\ProfileList.REG

Call the variable and replace the freshly loaded machine with the original profile list.

Now when you log in the SID will match the user SID as it is in Active Directory.