默认情况下,Windows Installer 使用最大的驱动器进行临时存储,无论是否需要(这意味着系统驱动器上也有足够的空间)。
取自http://msdn.microsoft.com/en-us/library/aa371372%28VS.85%29.aspx:
在管理员安装期间,安装程序会将 ROOTDRIVE 设置为它找到的第一个可以写入的连接网络驱动器。如果不是管理员安装,或者安装程序找不到网络驱动器,则安装程序会将 ROOTDRIVE 设置为具有最多可用空间的可以写入的本地驱动器。
现在我的系统驱动器是 SSD,我最大的驱动器是 RAID,不使用时会旋转。还记得 SSD 作为系统驱动器吗?现在一切都安静了!直到我安装某些东西,Windows Installer 再次唤醒我的 RAID,只是为了在上面放一个小的 .tmp 文件……我如何才能防止 Windows Installer 使用最大的驱动器作为临时存储?我是否可以设置一些访问权限以禁止 Windows Installer 在我的 RAID 驱动器上写入?还有其他想法吗?谢谢!
答案1
在注册表中编辑这些条目(指向所需的驱动器,本例中为 C:)对我有用 - 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:\ %*