MsiExec taking 50% CPU

I’ve had a rather frustrating afternoon but it’s all sorted now.

I’ve recently repaved my laptop with Windows 7 RC and installed loads of stuff at the same time, including VS2010 Beta 1. I’ve also more recently installed VS2008 as I needed it for the Ukadc.Diagnostics project that myself and Josh are collaborating on.

Now today I wanted to install something else, and found I couldn’t. I kept getting an error that was stating that there was already an installation in progress. Then a couple of Windows Updates failed too, so I knew something was amiss. After a bit of hunting around I found the rogue process – “msiexec /v” was the command line which I traced back to the Windows Installer service, and it was spawning off all sorts of other installations. Repeatedly. Without stopping. And it was using up to 50% of my CPU (which I’d obviously not noticed – but now I’ve sorted it I can really tell the difference!).

I then went for a hunt in the event logs and sure enough I found the culprit almost straight away – there were *thousands* of entries as follows :-

 Detection of product '{AA4A4B2C-0465-3CF8-BA76-27A027D8ACAB}', feature 'VSTA_IDE_12590_x86_enu', 
component '{FF4A39EF-8F8B-4557-9F81-50DC44C6D30A}' failed.  The resource 
'C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PublicAssemblies\en\' does not exist.

Well – that’s a fairly useful error message. I created the directory and my CPU is back to normal. The Windows Installer service is now dormant, and my PC is 50% faster doing what I want it to do.

So, if you’re having problems similar to mine check out MsiExec and see if you’ve got tons of entries in the event log.