Terminal Server 2008 (32 bit) fails to load profile (sometimes)

terminal-serverwindows-server-2008windows-server-2008-r2windows-terminal-services

I'm having an issue with a virtualized Terminal Server running Windows Server 2008 (32-bit). It doesn't seem to be affecting any users connecting with HP Thin-Clients, only with my test accounts which are AD user accounts and all members of Domain Users. In addition to these test user accounts I am also having the same problem when logging in with a domain Administrator account.

The message I receive is:

Your user profile was not loaded correctly! You have been logged on
with a temporary profile. Changes you make to this profile will be
lost when you log off. Please see the event log for details or contact
your administrator.

The temporary fix is:

  • log on to Terminal Server with an Administrator account
  • start regedit
  • goto: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\SIDoftheuseraccount" where you see the actual username when clicking on the folder entry
  • once you've found the folder (which should have a .bak appended to it) find the coresponding folder which does not have a .bak on it. This folder will have the username set as "Temp.MYDOMAIN" or something similar to that. Delete this entire folder
  • then remove the .bak from the actual users profile folder
  • re-log in as the user and the profile loads properly

There are several errors being logged:

  • Event ID 1515: Windows has backed up this user profile. Windows will automatically try to use the backup profile the next time this user logs on.

  • Event ID 1511: Windows cannot find the local profile and is logging you on with a temporary profile. Changes you make to this profile will be lost when you log off.

  • Event ID 1508: Windows was unable to load the registry. This problem is often caused by insufficient memory or insufficient security rights. DETAIL – The process cannot access the file because it is being used by another process. for C:\Users\Administrator.MYDOMAIN.000\ntuser.dat

  • Event ID 1502: Windows cannot load the locally stored profile. Possible causes of this error include insufficient security rights or a corrupt local profile. DETAIL – The process cannot access the file because it is being used by another process.

Some further detail about my configuration:

This is a Windows Server 2008 Std. SP2 (32-bit) virtual Terminal Server with 32GB RAM running under Hyper-V on a host Windows Server 2008 R2 EE SP1 server with 72GB of RAM. The reason for running a virtual 32-bit TS is because of several legacy 16-bit applications that are essential to our business. These applications are also not contenders for deployment via RemoteApp for various reasons (it's been tried).

I'm wondering if this problem has to do with how memory is configured for the Terminal Server. Is it incorrect build a TS with 32GB of memory and just allow users to log on (albeit with proper GPO's in place)? So, to all logged on users they would see they have access to a total of 32GB of memory. If this is incorrect please let me know what the general practice is.

Currently on the server there is 19GB of memory free with 6 active users logged on.

Best Answer

I got exactly the same problem. Only my setup is a win2008r2 x64 On Vmware Esxi. Everytime the number of users logged on reached 40, any user that logged on from that moment gets an temporary profile.

Workaround:
Move some of the users to other virtualized Terminal Server instances.

Cause And Fix: The registry on our Server was bloated to over 2gb. Some printer drivers (Kyocera, Sharp) are malfunctioning, and copy some registry keys every time a user logs on to the Terminal Server bloating it in the process. Once we cleaned the registry the server went back to normal.