vista 把 Program Files 目录移动到非系统盘
本文方案适用的系统为:Windows Server 2008,Vista 应该(可能)也有效。之前的系统也类似,可以参考《[系统优化] 用 Junction 自定义“顽固”系统文件夹的路径》。
第零步,确定系统是刚刚安装好的,这样比较不会出现意外,也更有效优化;确定是用 Administrator 登录。
第一步,复制 Program Files 目录,但不能直接用资源管理器复制,我们需要保留此目录的所有权限设置,假设要从 C 盘移动到 D 盘:
xcopy "C:\Program Files" "D:\Program Files\" /E /H /K /X /Y
第二步,修改注册表:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]
"ProgramFilesDir"="D:\\Program Files"
"CommonFilesDir"="D:\\Program Files\\Common Files"
第三步,重启,注意不是注销,因为 Program Files 里有很多文件是被系统服务使用的,注销并不能重启服务。
第四步,关闭 iphlpsvc 服务,因为它使用到了 "C:\Program Files\Internet Explorer\sqmapi.dll":
net stop iphlpsvc
第五步,删除 "C:\Program Files" 目录,要先取得所有权,添加改写权限后才可以删除。
第六步,创建 Junction 文件夹映射,把 "C:\Program Files" 指向 "D:\Program Files",这是为了防止一些硬编码的 SB 程序不由分说地往 "C:\Program Files" 里写东西。
mklink /J "C:\Program Files" "D:\Program Files"
大功告成。
http://hi.baidu.com/umu618/blog/item/2b2e743ef1cf8d3a71cf6c63.html