THE SQL Server Blog Spot on the Web

Welcome to - The SQL Server blog spot on the web Sign in | |
in Search

Linchi Shea

Checking out SQL Server via empirical data points

MSIZAP is Your Friend

If you ask for my opinion on Windows Installer, I’d have to think what polite words to use. But almost every Microsoft product uses it, and that includes SQL Server. So we are stuck with it and have to live with it for now and for the forseeable future.


One of major problems with Windows Installer is that its install packages can be so complex that it sometimes confuses the heck out of the Installer. I don’t know about you, but I have run into enough install/patch problems, and wasted countless number of hours when a SQL Server edition, version, or hotfix simply refuses to install and spits out strange error messages that turn out to have nothing to do with the real problems. Trying to fix these installer problems is like performing brain surgery on yourself—the chance of success is just not very high, at least judging from my own experience and even with help from the Microsoft support engineers.


Now, there are times when you can afford to obliterate an installed product, or whatever remains in its mangled state, and those are times you may find msizap.exe extremely useful and can save you tons of grief.


What msizap.exe can do for you is to wipe the slate clean by removing the file and registry settings that make up the Windows Installer configuration information for an installed product. Note that it removes the file and registry settings, not the files and registry keys themselves. If there are files of the product left in the file system, and registry keys/values left in the registry, you would have to delete them yourself.


Now, msizap.exe can be a very dangerous tool to use because it basically pulls the carpet from underneath a product. And you have to be really careful not to apply it to a wrong product. In addition, msizap.exe is not exactly intuitive to use as you need to deal with the product codes, which are GUID strings.


Fortunately, Microsoft has a more user friendly tool on top of msizap.exe. This more user friendly tool is called Windows Installer CleanUp Utility. You can find it easily via Google or in this KB article. When you launch this Installer CleanUp utility, it’ll automatically search the msi database, and list all the product names and their corresponding product codes for you to select. Then, you can simply select the product(s) whose msi configuration information you want to zap. And that’s all you need to do! Once the slate is wipted clean, the chance of the product install goes through becomes very high.


The msizap.exe utility has saved me in several occasions, and I'm sure you’d be thankful that you have msizap.exe around should you run into a similar situation.

Published Tuesday, August 12, 2008 12:18 PM by Linchi Shea
Filed under: ,



Peter said:

Sounds like what I might need in order to get SQL 2008 RTM to install any actual servers on my box.  For some reason, it completely bypasses the Server install portion even when they're selected.  Can't figure it out as I'm running the Dev edition against Vista and had no similar issues with any of the betas or RCs.

August 12, 2008 12:26 PM

chen said:

there is a matter troubles me. it can't work when execute a procedure   that contians  'select ' and 'update' ,'update' is earlier execute that 'select' ,how cal i solve that problem ,thanks

my mail is:

August 14, 2008 3:15 AM

Mike Good said:

Ar you familiar with MaxPatchCacheSize?  If not, check out this registry setting.  When used proactively, I believe it preempts this entire issue.  

I've been setting this to zero on new installs for almost a year now, and it appears to be working as advertised, with no ill effect.  I originally expected the tradeoff would be that I'd occasionally have to provide an original install DVD or ISO when patching, but so far not even this has occurred.  Result is dramatically smaller C:\Windows\Installer folder.

November 5, 2008 6:09 PM
New Comments to this post are disabled

About Linchi Shea

Checking out SQL Server via empirical data points

This Blog


Privacy Statement