Friday, July 24, 2009

Burnout Paradise and Windows 7

Long time, no post.


Okay, so I was installing Burnout Paradise: The Ultimate Box on my shiny new Windows 7 bootable VHD, and MSIInstaller kept throwing error code 2203 at the start of the install.

So, tracked down this gem of info:
Google Groups (microsoft.public.platformsdk.msi)

Windows NT has a nice command line tool called cacls.exe (change ACLs) that can display or set access control rules for files. Kinda like Take Ownership, but without actually having to alter the file's ownership.

And, it turns out a MSIInstaller 2203 error can be caused by NT AUTHORITY\SYSTEM not having access permissions on the %TEMP% or %SYSTEMROOT%\Installer folder.

Off to the commandline I went.

C:\Users\Kamilion>cacls %SystemRoot%\Installer
C:\Windows\Installer NT AUTHORITY\SYSTEM:(OI)(CI)F
Everyone:(OI)(CI)R
BUILTIN\Administrators:(OI)(CI)F

Well, that looks normal.

C:\Users\Kamilion>cacls %TEMP%
C:\Users\Kamilion\AppData\Local\Temp Raziel\Kamilion:(OI)(IO)F
Raziel\Kamilion:(CI)F

Ahha! I'm the only one with access to my own tempdir...
Well, we'll fix that.

C:\Users\Kamilion>cacls %TEMP% /E /G SYSTEM:F
processed dir: C:\Users\Kamilion\AppData\Local\Temp

So, I've just added an ACL allow for SYSTEM with Full access.
Let's see if it took.

C:\Users\Kamilion>cacls %TEMP%
C:\Users\Kamilion\AppData\Local\Temp Raziel\Kamilion:(OI)(IO)F
Raziel\Kamilion:(CI)F
NT AUTHORITY\SYSTEM:(OI)(CI)F

Sure enough!

Run the installer, and boom, no more 2203 error. I have my Burnout, and learned a new trick!

Sometimes annoying errors can actually be useful.
Edit: Argh, no [code] tags!