微软设计了比如:我的文档、我的OOXX,之类的东西,在WIN7下面更连游戏、下载等等目录都设计好了,我也很乖巧的把各种文件都分门别类的放进去了。

同时也很厉害的设计在了“%HOMEDRIVE%”里面,各种的资料,这种软件的配置就全给放进去了

在XP的时候对于C盘的要求还不是那么大,但是在win7下就显的捉襟见肘了

再格式化,重装系统就全没了,囧,就也是必须移动出来的第二个理由

以前只是自己挪挪地儿,小改一下注册表,今天无意中参考了几篇文章,那搞的才是个全面啊,在膜拜只后就全给做笔记了,忽忽,先上牛人原文的传送门

首先,不管你要怎么挪,请记住挪坏了我不会负责。其次,确定系统是刚刚安装好的,这样比较不会出现意外,也更有效优化,确定是用 Administrator 登录。

移动Program Files目录到非系统盘

第一步,复制 Program Files 目录

不能直接用资源管理器复制,我们需要保留此目录的所有权限设置,(以前我就是直接在资源管理器面弄到,现在严重怀疑,我的机器时不时的抽风是不是和这个有关)假设要从 C 盘移动到 D 盘:

xcopy "C:\Program Files" "D:\Program Files\" /E /H /K /X /Y /C

第二步,修改注册表

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"

至此,Program Files目录的转移就结束了,与还不太放心的话,可以去注册表找找“C:\Program
Files”这个字串符,手动改改了,呵呵,改坏了就是你人品问题了。

移动ProgramData 目录到非系统盘

第一步,复制 ProgramData 目录

假设要从 C 盘移动到 D 盘:

xcopy C:\ProgramData D:\ProgramData\ /E /H /K /X /Y /B /C

第二步,修改注册表

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\ProfileList] 下的 ProgramData 数据原为
%SystemDrive%\ProgramData,改为 D:\ProgramData。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell
Folders] 下的 “Common Administrative Tools”、”Common AppData”、”Common
Programs”、”Common Startup”、”OEM Links”、”Common Templates”
等值的数据也相应地改改。如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell
Folders]
"Common Start Menu"="D:\\ProgramData\\Microsoft\\Windows\\Start
Menu"
"Common Programs"="D:\\ProgramData\\Microsoft\\Windows\\Start
Menu\\Programs"
"Common Administrative Tools"="D:\\ProgramData\\Microsoft\\Windows\\Start
Menu\\Programs\\Administrative Tools"
"Common Startup"="D:\\ProgramData\\Microsoft\\Windows\\Start
Menu\\Programs\\Startup"
"OEM Links"="D:\\ProgramData\\OEM
Links"
"Common Templates"="D:\\ProgramData\\Microsoft\\Windows\\Templates"
"Common AppData"="D:\\ProgramData"

第三步,重启

注销的话需要多加 net stop iphlpsvc 和 net stop BITS。

第四步,删除 C:\ProgramData 目录

其中有两个无法直接删除的文件要先取得所有权,添加改写权限后才可以删除。

第五步,创建 Junction 文件夹映射

把 C:\ProgramData 指向 D:\ProgramData,这是为了防止一些硬编码的程序不由分说地往
“C:\ProgramData” 里写东西。

mklink /J C:\ProgramData D:\ProgramData

移动Users 目录到非系统盘

第一步,修改注册表

和前面不同,因为 Users 目录下有一些系统占用的文件,复制不了。如果你和我一样有双系统或者用 U 盘启动
WinPE,那可以试试,不必按照这里写出的步骤做。但如果你没有相应的设备的话,那就继续SBS吧,先修改注册表,再复制文件。假设要移动到
E 盘:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\ProfileList] 下的 Default、ProfilesDirectory、Public
三个值的数据改一下,把盘符都改为 E:。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\ProfileList\S-1-5-21-3843801140-3458922274-3296897442-500]
下的 ProfileImagePath 数据改为 E:\Users\Administrator。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell
Folders] 下的 “Common Desktop”、”Common
Documents”、CommonMusic、CommonPictures、CommonVideo 五个值的数据把盘符都改为
E:。

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell
Folders] 下的值看到数据中有 C:\Users 的都改为 E:\Users。

第二步,注销,重新登录

会发现一些用户配置没正确加载的问题,但不用理会。

第三步,复制文件

xcopy C:\Users E:\Users\ /E /H /K /X /Y /B /C

第四步,注销,重新登录

在第二步看到的问题,解决了。

第五步,删除 “E:\Users\Default User” 目录

因为这个目录被 xcopy 复制错误,重新创建:

mklink /J "E:\Users\Default User" E:\Users\Default

然后对照 “C:\Users\Default User” 的权限设置,把 “E:\Users\Default User”
设置成和它一样:

cacls "E:\Users\Default User" /S:"D:PAI(D;;CC;;;WD)(A;;0x1200a9;;;WD)(A;;FA;;;SY)(A;;FA;;;BA)"

第六步,删除 C:\Users 目录

直接用资源管理器删除,很顺利。

第七步,创建映射

mklink /J C:\Users E:\User

高级移动

好吧,我承认前面的你都移动了,其实系统还是会添加几个G文件区C盘,我们前面只是移动了应用软件的默认安装位置,和一些个人数据

这里要说的是,对于像 %SystemRoot%\Installer、%SystemRoot%\SoftwareDistribution
这类“顽固”的文件夹,不能通过修改注册表来定义路径的设置!

我们要先准备一个工具Junction传送门

 

这两个文件夹比较“常用”,MSI 安装程序会把安装文件缓存到 %SystemRoot%\Installer,比如您装了
VS,会发现这个文件夹大了很多;而 %SystemRoot%\SoftwareDistribution
是自动更新服务用来缓存更新程序的。我的这两个文件夹加起来就有2GB多,惆怅

  假设要把 %SystemRoot%\Installer 修改为 E:\SysDir\Installer,

首先通过资源管理器把 C:\WINDOWS\Installer 文件夹剪切到 E:\SysDir\ 下(这个文件夹是隐藏的)

然后在命令提示符下输入:

junction C:\WINDOWS\Installer E:\SysDir\Installer

对于 SoftwareDistribution 要多一步,要先停止自动更新服务:

net stop wuauserv

后面步骤和 Installer 的一样,剪切 -> Junction:

junction C:\WINDOWS\SoftwareDistribution
E:\SysDir\SoftwareDistribution

  这样做完之后 C:\WINDOWS\ 下的 Installer 和 SoftwareDistribution
其实只是文件夹的映射,对他们的写入操作全部都会映射到 D:\SysDir\ 下的对应文件夹。本质上就是把E盘的空间拿到 C
盘使用,减少对 C 盘的写入。

Windows7系统目录迁移:Users,Progr…的更多相关文章

  1. windows 7、Windows10 系统目录迁移,修改安装的默认路径:Users,Program Files,ProgramData

    Tips:本文只针对Win7.windows 10系统有过测试,其他系统尚未测试:不过大家想尝试也可.这次实验是我做的全新 win7_32位系统来测试的,windows10当然64位的系统也可.至少现 ...

  2. Windows 10瘦身

    Windows操作系统功能越来越强大,同时体型也越来越臃肿.安装盘没有60Gb都不敢安装.Windows10 安装最低磁盘要求20G ====瘦身基础篇,适合任何用户:(可见目录,简单迁移)1. 安装 ...

  3. SQL Server 备份迁移策略

    标签:SQL SERVER/MSSQL SERVER/数据库/DBA/xp_cmdshell/备份压缩 概述 当备份空间不是很充裕的情况下需要找方法将备份文件拷贝到专用的备份机器上去,特别是存储空间不 ...

  4. windows7 阻止copyfile到windows目录的解决办法

    一. windows7 x64,uac会阻止copyfile到c:/windows.提示拒绝访问. [会引起uac提示的3种情况: Administrator access token checks. ...

  5. 如何在windows7上安装启明星系统。

    启明星系统提供多种安装方式.安装包里自带了setup.exe.每个程序的 install下有在线安装(例如请假应用程序为book,则默认为 http://localhost/book/install ...

  6. 从Windows XP系统迁移到Windows 7,Windows 8开始

    Microsoft在2014年4月8日结束了Windows XP的支持.您的公司准备好了吗?如果您还没有迁移到Windows 7或8,那就要抓紧时间了.从现在起将不再向XP系统提供安全修补程序,而仍然 ...

  7. Outlook账户迁移帮助

    Outlook账户迁移指南 1. 介绍 开贴聊聊如何迁移Outlook用户账户到另外一台电脑. 相信许多Outlook用户都遇到过这样的情况:买来一台新电脑,安装完Outlook后,想把旧电脑里面的O ...

  8. MSSQL备份及数据迁移

    版本:MSSQL 2008 备份情景:从A服务器的SQL 迁移到B服务器,并且数据也迁移过去. 操作环境:A服务器:WINDOWS7  B服务器:WINDOWS8.1   辅助工具:VNC 首先从A服 ...

  9. 代码托管SVN到Git迁移(使用小乌龟工具)

    1.环境信息 Git   Server     华为软件开发云   代码托管 SVN Server    本地SVN服务器   Windows Server2012 R2 本地主机       Win ...

随机推荐

  1. 优龙FS2410开发板学习过程遇到问题总结

    以下的问题及其解决办法是基于优龙FS2410开发板,不定期更新 ============================================================= 开发学习环境 ...

  2. Hibernate学习笔记三

    1.1.1 Hibernate的关联关系映射:(多对多) 1.1.1.1 多对多的配置: 步骤一创建实体和映射: Student: public class Student { private Int ...

  3. 使用 Linux 下的的logrotate进行日志的切割

    实际生产中,使用一个log文件来记录所有信息的话,一方面,时间过久,就会占用很大的空间:另一方面,就是一个文件记录对于后期日志的查看非常不利.为了解决查看了一下资料,发现linux里面有一个logro ...

  4. Hough变换-理解篇

    Hough变换-理解篇 霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,它通过一种投票算法检测具有特定形状的物体.该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符 ...

  5. MFC 中的设计模式分析

    MFC 中的设计模式分析 最近在学习设计模式,突然想到MFC里面其实也包含有设计模式的原理,于是分析了一下,做一个笔记,网上也找了一些资料,在此一并感谢. 创建型模式 单例模式(Singleton P ...

  6. 每天看一片代码系列(三):codepen上一个音乐播放器的实现

    今天我们看的是一个使用纯HTML+CSS+JS实现音乐播放器的例子,效果还是很赞的: codePen地址 HTML部分 首先我们要思考一下,一个播放器主要包含哪些元素.首先要有播放的进度信息,还有播放 ...

  7. GDAL2.1.1库在Ubuntu14.04下编译时遇到的问题处理方法

    不用作任何调整,直接在Linux下编译GDAL2.1.1源码的步骤是: $ ./configure $ make $ make install 非常简单,这样也能正常生成gdal动态库.静态库,如果想 ...

  8. Qt-QML-Button-ButtonStyle-实现鼠标滑过点击效果

    上次实现的自定义的Button功能是用的自定义的Rectangle来实现的,在慢慢的接触了QML之后,发现QML有自己定义的Button 这里盗版贴上Qt帮助文档中的部分关于Button的属性内容 B ...

  9. MySQL☞lower函数

    lower(列名/字符串):将大写字母改成小写字母 格式: select  lower(列名/字符串)  from  表名 如下图:

  10. Ubuntu—查看进程并关闭进程

    环境:Ubuntu终端 命令:ps -aux 功能:查看进程信息 命令:kill 进程号(PID) 功能:杀死进程