用 Junction 自定义“顽固”系统文件夹的路径
但是对于像 %SystemRoot%\Installer、%SystemRoot%\SoftwareDistribution 这类“顽固”的文件夹,不能通过修改注册表来定义,得用别的方法!需要使用的工具是 Junction,下面来介绍具体做法。
首先说明为什么要移动这两个文件夹。因为这两个文件夹比较“常用”,MSI 安装程序会把安装文件缓存到 %SystemRoot%\Installer,比如您装了 VS,会发现这个文件夹大了很多;而 %SystemRoot%\SoftwareDistribution 是自动更新服务用来缓存更新程序的。
假设 %SystemRoot% == C:\WINDOWS,要把 %SystemRoot%\Installer 修改为 D:\SysDir\Installer,首先通过资源管理器把 C:\WINDOWS\ 下的 Installer 文件夹移动到 D:\SysDir\ 下,注意这个文件夹是隐藏的。然后在命令提示符下输入:
junction C:\WINDOWS\Installer D:\SysDir\Installer
对于 SoftwareDistribution 要多一步,要先停止自动更新服务:
net stop wuauserv
后面步骤和 Installer 的一样,剪切 -> Junction:
junction C:\WINDOWS\SoftwareDistribution D:\SysDir\SoftwareDistribution
这样做完之后 C:\WINDOWS\ 下的 Installer 和 SoftwareDistribution 其实只是文件夹的映射,对他们的写入操作全部都会映射到 D:\SysDir\ 下的对应文件夹。本质上就是把 D 盘的空间拿到 C 盘使用,减少对 C 盘的写入。