Intro

We use Samba as our PDC (the 2.2 series) with around 75-80 XP clients. Your mileage with this stuff may vary, and if you are not careful, users could possibly lose data.

As XP roaming profiles grow, so does the amount of time it takes to log in and out. We were experiencing login and logout times of greater than 5 minutes for some of our users, with most users taking around a minute. In a classroom environment, taking up to 5 minutes to log into the system is not acceptable and so we started looking into things that could be done to speed things up.

Roaming profile background

An XP roaming profile consists of the HKEY_CURRENT_USER hive file NTUSER.DAT and a dozen or so folders (My Documents, Application Data, Desktop, Start Menu, Templates, NetHood, Favorites, etc.). Every time a user logs in, all this data is copied to the local machine and placed in %USERPROFILE%. While the user is logged in, any changes made to any of these folders or to the CURRENT_USER branch of the registry are done to this local copy of the profile. At logout all of the profile data is copied back out to the server.

Temporary fixes

The first thing we tried was to decrease the size of the profile. This included removing all the shortcuts in the Recent directory, making sure Mozilla's cache was not being dumped into the Application Data folder, removing the Java plugin's cache (the .jpi_cache directory in the profile), as well as training the user to not place large files on the Desktop and to use his mapped home directory for saving documents instead of the My Documents folder.

While this seemed to temporarily relieve things, it was only a matter of time before things would slow down again. Using a folder other than My Documents to save things to was a nuisance for some of our users since many applications default to using My Documents.

Profile and Local Group Policy changes

In order to really speed things up we decided to try to keep parts of the profile from being copied back and forth, without losing any functionality. It turns out that this isn't quite as hard as we had originally feared and involves making changes to the Local Group Policy on each client as well as changing some paths in each user's NTUSER.DAT hive. Updating the hive turned out to be the tricky part, but I found Petter Nordahl-Hagen's Offline NT Password Editor which will modify hive files from Linux and modified it to work non-interactively (ie. within a script). Get my modified version here.

Results

It has worked pretty well for us so far through all our testing giving us big speedups, but the real test for how well it will work will happen when all the students come back in September. (UPDATE: Several people have asked how the system is working, now that school is back in swing. Short and sweet answer: It is working like a charm and we have not had any major problems with it.)

We did run into several small things to note about this setup:

  1. Office XP (possibly earlier versions too??) lags a bit when typing in a filename to save or open in the respective dialog boxes. The issue seems to be that Office XP opens the "Application Data/Microsoft/Office/Recent" folder and follows each of the links as you type in order to try to guess what you are trying to type. Network latency seems to be the cause of this slowdown. By cleaning out the Office XP recent files, this can be sped back up.
  2. Mozilla's user profile data stored in "Application Data/Mozilla/registry.dat" references the profiles as if they were in %USERPROFILE%, which they no longer are. If you have only one Mozilla profile that you use, you can safely delete the registry.dat file and it will be reconstructed the next time you start Mozilla with the correct paths.

Have you seen other issues or have any other information to contribute? Email me (Nathan Ehresman): nehresma@css.tayloru.edu

Credits



(last modified: )