Resize OS partition in Windows Vista

Here’s an easy walkthrough to change your OS partition size in Vista:


Change User Profile Folder Location in Vista

Here lies my experience moving my entire User Profile folder structure, including Default, Public, and any local users.

In my search for a solution, the only two easy ways I found to move the user profile directory locations from the system drive is to

  1. Set the User Profile folder during setup using an unattended install file.
  2. Move the individual folders inside your user profile, which can be done using explorer (which will update the registry keys HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders and HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders).

However, this was not good enough for me, I wanted my actual user profile folder to be moved to a seperate partition/volume, including registry settings.  I discovered that it is not actually that hard, provided you’re comfortable with mass replacing registry keys and values.

Here is how I moved my user profile location.  Please note that I wanted all of the profiles moved, included Public and Default, so some of these steps can be skipped if you do not want that:

  1. Make sure you have a complete backup of your system!
  2. Copy the original Default Profile directory to the new location (e.g. from C:\Users\Default to D:\Users\Default).
  3. Copy the original Public Profile directory to the new location (e.g. from C:\Users\Public to D:\Users\Public).
  4. Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList.
  5. Change the value of the Default key to the new user profile location (e.g. D:\Users\Default).
  6. Change the value of the Public key to the new user profile location (e.g. D:\Users\Public).
  7. Change the value of the ProfilesDirectory to the new user profile location (e.g. D:\Users).
  8. At this point, you need to restart and log back in as a different user that has never logged in before and therefore does not have a profile created.  In my case, the Administrator user had never logged in before so I enabled it so that Administrator could log in and used that.  You can enable Administrator login by loading Computer Management and then go to User Accounts, edit the properties for Administrator, and then uncheck Disable Login.
  9. After logging in for the first time with the new user account, you will see “Creating Desktop” and other things like that while Windows is creating your profile.  Note that the new profile should be created in the new location.
  10. After logging in, try to close as many applications as possible.  This will prevent most files from being locked so that you cannot copy them.
  11. Copy the entire original user profiles folder from the original location to the new location (e.g. C:\Users\* to D:\Users\).  (See next step after copy starts).
  12. There are a few things to note during this copy.  There were thousands of .TMP files that were locked and would not copy.  I just skipped these files.  I held down Alt-S so that I could see all of the skipped files and make sure that there were only .TMP files being skipped.  Yes, this took a little while, but at least I was confident that I got all of my files copied.  This process could probably be made easier using the command prompt or powershell.
  13. If, in your case, there are some files that will not copy, you can run procexp.exe, which is file provided by sysinternals.  Then do a Find Handle and search for part of the filename.  procexp will tell you which programs are locking the file.  As long as you closed as many programs as you could, though, this should not happen.
  14. Find and download a program that will do a Search & Replace on the registry.  I will not suggest one because I did not find one single program that worked perfectly.  I ended up downloading a few different freeware applications and using all of them.
  15. Using the Registry Search & Replace program, do a search for the original user profile folder and replace it with the new user profile folder (e.g. search for “C:\Users” and replace with “D:\Users”.  Note that some of the applications I used would only change values and not key names.  However, the keys that needed to be chagned were all related to MuiCache.  I do not know if these actually need to be updated.  I did just to make sure.
  16. Log out.  Log back in with the same user.  Repeat step 14 until there is nothing left to replace.  The reason for this step is that on logout, some programs seem to update the registry using the old user profile path.
  17. Run regedit.exe and do a search for the original user profile path and make sure it does not exist.  The reason for this step is because (as noted in step 13), I did not trust any of the Registry Search & Replace programs I used.  I ended up needing to update about a dozen of the keys and values manually, since the search & replace missed them.
  18. So that you can easily find programs that do not use the registry and hard-coded profile paths, rename your original profile folder (e.g. rename C:\Users to C:\~Users).
  19. Log out. Log back in as your usual user.  Everything should be working correctly except for programs that use a “hardcoded” user profile location.
  20. There are two easy methods that can be used to find programs that use a “hardcoded” profile location and are still looking for the original user profile path.  You can use the procexp.exe trick mentioned above and search for handles in the original profile location.  You can also monitor the oringal profile location to see if any new folders or files were created.  For example, in my case, FolderShare created some folders and files in the directory C:\Users\MyUsername\AppData\Local\FolderShare\.  So, I updated the FolderShare settings to point to the different path and then deleted the C:\Users directory (note that C:\~Users still existed as a backup).
  21. Since you are now confident that all of your data has been moved (right??????), you can deleted the backup of the original user profile location (e.g. C:\~Users).


This procedure worked flawlessly for me.  Everything user-related is now on a completely different volume, and I can sleep a little better at night!  🙂

SyncToy 1.4 and Vista x64 Error (Fixed)

If you are receiving the following error when trying to run SyncToy 1.4 on Vista x64:

Problem signature:
Problem Event Name: CLR20r3
Problem Signature 01: synctoy.exe
Problem Signature 02:
Problem Signature 03: 453f990b
Problem Signature 04: SqmManagedWrapper
Problem Signature 05:
Problem Signature 06: 453f9909
Problem Signature 07: 8
Problem Signature 08: 38
Problem Signature 09: System.BadImageFormatException
OS Version: 6.0.6000.
Locale ID: 3081

Then here is a fix:

  1. Install Microsoft Net Monitor 3.0.
  2. Copy the custsat.dll file from C:\Program Files\Microsoft Network Monitor 3.0\ (or wherever your Net Monitor installation is located).
  3. Paste the file into C:\Users\YourLoginName\AppData\Local\SyncToy\ (or wherever your SyncToy installation is located).

That’s it! Happy Syncing.

NVidia Vista Drivers are Still Awful

I just installed version 15.00 of the nForce4 Nvidia drivers, and it seems that they have caused my onboard network adapters to go crazy. In other words, my something is seriously wrong.

I am getting error messages like “Ping: transmit failed, error code 1232” from the command prompt and messages like “Windows tried a repair but a problem still exists. The network adapter does not have a valid IP configuration.” When I edit my manual IPv4 settings, it seems like it will not save my IP address sometimes (and other times it will).

Suffice to say, if you are having these problems, I feel your pain. The best way I found to fix it is to go to the Device Manager and uninstall the network adapters, without checked the “Uninstall Driver” box. The network adapter will immediate reinstall itself, and most of the time my network worked (temporarily) after that. I have heard reports that going into sleep mode will break the network. In my case, changing to a manual IP address will _sometimes_ break the network again. Sometimes unplugging the cable and plugging it back in will fix this.

I know, I should have a better fix than this, but it just seems so random. I haven’t been able to track down a repeatable pattern. This all worked flawlessly before the driver update, so I would suggest waiting until a newer release.


I have some new (albiet incomplete) information on when my manual IP address configuration is not saved.

It seems like the reason it forgets my IP address has something to do with the fact that I set both adapters to use the same IP address. The reason for this is that I only have one hooked up at a time and it saves me from adding extra port forwarding rules to the router. The “Are you sure you want to use this IP address” dialog will pop up once and only once. I will never see it again afterward using that IP address, but if I set both adapters to a different IP then I will get the dialog once again. It seems like it is at that point that the second adapter I added the IP address to will not save its information, and that IP address is forever “broken” in that I can no longer use it. If I switch to a different IP address then I have connectivity again until I use it with both adapters (remember, only one is plugged in), at which point I get the dialog and that address becomes unusable.

Somewhere Vista or the nVidia drivers are remembering these IP addresses, and not working correctly when I try to use them.

To show you the craziness, here is a screenshot of my current network details (that are working, since I’m able to make this post):


Now observe the properties for this network adapter:


Notice the two blank entries?  This time, at least I have a default gateway.  That’s missing sometimes, too.