Remember those days when disk space is limited and one of the ways is to delete those $NtUninstall Folders that contain the uninstall information? It helps lots to free up those valuable disk space in C:\ drive.

However, in Windows Vista/2008, MS moved it to another location and I really had a hard time finding it until I came across a web site that finally has that information! My C: drive has 30GB but it’s running out of space.

Well, here are the steps:

Step 1: Deleting C:\Windows\SoftwareDistribution folder

1. In the Start menu search box, type "services.msc" and press Enter

2. Stop the Windows Update service (leave the window open - you will restart the service in step 4)

3. Navigate to your Windows folder (C:\WINDOWS) and delete the folder named "SoftwareDistribution"

4. Restart the Windows Update service

5. Open Windows Update

6 Ta-da! Windows Update states that you have never checked for updates! Simply click "Check for Updates" and you're ready to begin installing updates!

Step 2: Use msizap to remove orphaned cached Windows Installer Data Files to increase free disk space

Msizap is a command-line tool that can delete the configuration data that Windows Installer maintains for products that it installs, including the directories, files, registry subkeys, and registry entries in which Windows Installer stores configuration data.

Running msizap.exe with the G parameter removes orphaned cached Windows Installer data files for all users. Running this command on an old Windows XP machine allowed me to reduce the size of the C:\Windows\Installer directory from 3.6GB down to 875MB.

This computer had so many orphaned files due to the constant installation and uninstallation of software such as Java, Flash, Acrobat Reader, and other utility software over the years. Yes, orphaned files persist on your hard drive despite following proper uninstall procedures.

To run msizap, login to the machine as an administrative user and launch a command window. Navigate to the directory that contains msizap.exe, then type the following command:

msizap !G

The G option removes the orphaned cache files, the exclamation point forces a ‘yes’ response to any prompt.

While removing orphaned files should not have any negative impact on your Windows installation, be aware that msizap is a powerful tool that can cause problems if used incorrectly.

Msizap can be downloaded as a part of the Microsoft Windows Server 2003 Support Tools or the Windows Installer CleanUp Utility. I was unable to find the Windows Installer CleanUp Utility by searching Microsoft’s download site, so note that as of today the file’s name is msicuu2.exe if you the above link goes dead in the future.

After you’ve installed the Windows Installer CleanUp Utility, it can be found at “C:\Program Files (x86)\Windows Installer Clean Up” folder. Navigate to this folder and run the following command:

   1:  MSIZAP !G

If you don’t want to install the Windows Installer CleanUp Utility, use a program such as Universal Extractor (aka UniExtract) to extract the individual files. Once you extract the files, you’ll notice msizap.exe does not exist, but you will find MsiZapA.exe and MsiZapU.exe.

There are two versions of MSIZAP.EXE: MsiZapA.exe (for use in Windows 95, Windows 98 and Windows ME), and MsiZapU.exe (for use in Windows NT, Windows 2000, Windows XP, and Windows Server 2003). The appropriate executable should be renamed MsiZap.exe.

Current msizap.exe options are as follows:

Usage: msizap T[WA!] {product code}
msizap T[WA!] {msi package}
msizap *[WA!] ALLPRODUCTS
msizap PWSA?!

* = remove all Windows Installer folders and regkeys;
adjust shared DLL counts; stop Windows Installer service
T = remove all info for given product code
P = remove In-Progress key
S = remove Rollback Information
A = for any specified removal, just change ACLs to Admin Full Control
W = for all users (by default, only for the current user)
M = remove a managed patch registration info
G = remove orphaned cached Windows Installer data files (for all users)
? = verbose help
! = force ‘yes’ response to any prompt

For more information on the Windows Installer Cleanup Utility and msizap.exe see KB290301.


“Money is the root of all evil”

I have a customer who has a SQL 2005 cluster in the DMZ zone. However, to save cost, they installed Active Directory into the clustered nodes since SQL 2005 Cluster needs domain accounts in order to function. Everything runs fine until they decided to run another SQL cluster joining to this Domain. Problems surfaced when this 2nd set of SQL cluster couldn’t fail over as the SQL services couldn’t be started.

Microsoft has released their statements that they do not support installing SQL 2005 cluster on a domain controller (http://support.microsoft.com/kb/915846/en-us). Nevertheless, there will still be someone who will try to do it and hope for the best that it works and hurray, they managed to save cost without having to buy & maintain another 2 sets of DC. But… when problem occurs… well, you know the story.

This sets me on another track. What if we were to set up a Hyper-V or VMWare DC in each of the cluster nodes? Would this work? And since the DC and SQL Cluster are now “logically separated”, will Microsoft support this architecture? Hope someone who had done this and gain MS support can let us know. Thanks in advance.


I stumbled upon this web site http://blogs.msdn.com/clustering/ and is amazed at how much info you can find there!  It’s simply amazing… a dedicated web site all on clustering only. Forget Google… well for once only :)


About this blog

This is the code related blog of Paul Lim. I will try to post codes that I use daily for my work. Hopefully, it may help you out someday... :)


Sponsors