4

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!

  • Sorry, but why do you care. THe comment about silent gave me the idea you spend 8 hours per day just installing software. Yes, this is annoying, but hey, it should be totally irrelevant because I install software every couple of weeks at most. – TomTom Mar 23 '12 at 16:13
  • 1
    superuser.com/questions/71325/… this solution may work for you i think. – johnshen64 Mar 23 '12 at 16:17
  • 1
    stackoverflow.com/questions/4570242/… Another possible option – Clayton Mar 23 '12 at 20:27
  • @TomTom think about this: I have a virtual disk attached which is configured to be in growing mode because it virtually is 64TB in size (just for testing APIs etc.). It's neither located on a fast drive nor is there much space to grow, but every damn installer thinks this is a good place to copy gigabytes of data to. – springy76 Jul 23 '15 at 15:33
  • @TomTom Glad to know you install software every couple of weeks at most. Amazingly, not everyone is like you. Others have different computing needs. – WackGet Dec 16 '16 at 0:43
4

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:\ %*

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.