Windows7系统目录迁移:Users,Progr…

2024-02-28 18:58

本文主要是介绍Windows7系统目录迁移:Users,Progr…,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

微软设计了比如:我的文档、我的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…的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/756332

相关文章

Oracle迁移PostgreSQL隐式类型转换配置指南

《Oracle迁移PostgreSQL隐式类型转换配置指南》Oracle迁移PostgreSQL时因类型差异易引发错误,需通过显式/隐式类型转换、转换关系管理及冲突处理解决,并配合验证测试确保数据一致... 目录一、问题背景二、解决方案1. 显式类型转换2. 隐式转换配置三、维护操作1. 转换关系管理2.

MySQL 迁移至 Doris 最佳实践方案(最新整理)

《MySQL迁移至Doris最佳实践方案(最新整理)》本文将深入剖析三种经过实践验证的MySQL迁移至Doris的最佳方案,涵盖全量迁移、增量同步、混合迁移以及基于CDC(ChangeData... 目录一、China编程JDBC Catalog 联邦查询方案(适合跨库实时查询)1. 方案概述2. 环境要求3.

Conda虚拟环境的复制和迁移的四种方法实现

《Conda虚拟环境的复制和迁移的四种方法实现》本文主要介绍了Conda虚拟环境的复制和迁移的四种方法实现,包括requirements.txt,environment.yml,conda-pack,... 目录在本机复制Conda虚拟环境相同操作系统之间复制环境方法一:requirements.txt方法

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

SQL Server数据库迁移到MySQL的完整指南

《SQLServer数据库迁移到MySQL的完整指南》在企业应用开发中,数据库迁移是一个常见的需求,随着业务的发展,企业可能会从SQLServer转向MySQL,原因可能是成本、性能、跨平台兼容性等... 目录一、迁移前的准备工作1.1 确定迁移范围1.2 评估兼容性1.3 备份数据二、迁移工具的选择2.1

将sqlserver数据迁移到mysql的详细步骤记录

《将sqlserver数据迁移到mysql的详细步骤记录》:本文主要介绍将SQLServer数据迁移到MySQL的步骤,包括导出数据、转换数据格式和导入数据,通过示例和工具说明,帮助大家顺利完成... 目录前言一、导出SQL Server 数据二、转换数据格式为mysql兼容格式三、导入数据到MySQL数据

CentOs7上Mysql快速迁移脚本

因公司业务需要,对原来在/usr/local/mysql/data目录下的数据迁移到/data/local/mysql/mysqlData。 原因是系统盘太小,只有20G,几下就快满了。 参考过几篇文章,基于大神们的思路,我封装成了.sh脚本。 步骤如下: 1) 先修改好/etc/my.cnf,        ##[mysqld]       ##datadir=/data/loc

CentOS下mysql数据库data目录迁移

https://my.oschina.net/u/873762/blog/180388        公司新上线一个资讯网站,独立主机,raid5,lamp架构。由于资讯网是面向小行业,初步估计一两年内访问量压力不大,故,在做服务器系统搭建的时候,只是简单分出一个独立的data区作为数据库和网站程序的专区,其他按照linux的默认分区。apache,mysql,php均使用yum安装(也尝试

Linux Centos 迁移Mysql 数据位置

转自:http://www.tuicool.com/articles/zmqIn2 由于业务量增加导致安装在系统盘(20G)磁盘空间被占满了, 现在进行数据库的迁移. Mysql 是通过 yum 安装的. Centos6.5Mysql5.1 yum 安装的 mysql 服务 查看 mysql 的安装路径 执行查询 SQL show variables like

OpenStack镜像制作系列2—Windows7镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系列