vista 把 Program Files 目录移动到非系统盘

本文只讨论系统正常安装后的移动,另外一种方案是使用"unattend 无人值守"安装系统,可以自行搜索。

  本文方案适用的系统为: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

posted @ 2009-01-12 16:29  zscy  阅读(542)  评论(0编辑  收藏  举报