Keep Windows Installer from using largest drive for temporary files

By default Windows Installer uses the largest drive for temporary storage, no matter if that's needed (meaning there would also be enough space on the system drive).

Taken from http://msdn.microsoft.com/en-us/library/aa371372%28VS.85%29.aspx:

During an administrative installation the installer sets ROOTDRIVE to the first connected network drive it finds that can be written to. If it is not an administrative installation, or if the installer can find no network drives, the installer sets ROOTDRIVE to the local drive that can be written to having the most free space.

Now my system drive is an SSD, my largest drive is a RAID, that spins down when it's not used. Remember the SSD as system drive? Everything is silent now! Until I install something and Windows Installer wakes up my RAID again just to put a small .tmp file on it... How can I prevent Windows Installer from using the largest drive as temporary storage? Can I maybe set some access rights to disallow the Windows Installer to write on my RAID drive? Any other ideas? Thank you!


Solution 1:

Editing these entries in the registry (to point to the desired drive, C: in this example) worked for me - Server 2012

HKEY_CLASSES_ROOT\Msi.Package\shell\Open\command
"%SystemRoot%\System32\msiexec.exe" /i "%1" ROOTDRIVE=C:\ %*

HKEY_CLASSES_ROOT\Msi.Package\shell\Repair\command
"%SystemRoot%\System32\msiexec.exe" /f "%1" ROOTDRIVE=C:\ %*

HKEY_CLASSES_ROOT\Msi.Package\shell\Uninstall\command
"%SystemRoot%\System32\msiexec.exe" /x "%1" ROOTDRIVE=C:\ %*

HKEY_CLASSES_ROOT\Msi.Patch\shell\Open\command
"%SystemRoot%\System32\msiexec.exe" /p "%1" ROOTDRIVE=C:\ %*