If you are implementing a Citrix, Terminal Server or even just a plain Client-Server environment you will need to create a Default User Profile at some point.

The Default User Profile can be thought of as the initial registry settings that are used when a new profile is created.

Many people think that the Default User Profile is available in regedit via HKEY_USERS\.Default but this is NOT the Default User Profile.


The .Default key is loaded before you logon, so it’s usefull to save the language and keyboard settings that apply before logging on. Many OEM vendors also set a background image here to set a “logon wallpaper”.

The location of the Default User Profile is set in the registry under HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList:


Note that on Windows Vista and higher OS the Default key containts the full path but on Windows 2003/XP you need to assemble the path by combining the values of ProfilesDirectory and DefaultUserProfile:


But how do we create a Default User Profile?

The traditional method is that you logon as a certain user, make you changes and the copy the profile using the Copy To button in the User Profiles page of the Advanced System Properties:


However this is a lot of manual work that you need to do all over again if you go to a new OS of even another environment (especially if you move on from project to project like me).

Note that you can of course copy the Default User Profile from one machine to another but you can’t keep track of changes or easily see the contents.

That’s why I use another way: I create .reg files with all the Default Settings I need.

I use a little know feature of reg files: you can add comments using the semi colon (;)

You can also deletee keys or values in .reg files using the minus sign (-).

In the .reg file I use HKEY_USERS\#DefUser to reference HKEY_CURRENT_USER.

A typical Default User Profile .reg file looks like this:

I have created a vbscript that mounts the Default User Profile (under HKEY_USERS\#DefUser), imports the regfile (given as parameter) and unmounts the key again.

Script and sample .reg file are available in the download below!

DefUser.zip (1349)