将 Windows 的 C:\Users 目录迁移到非系统盘(改变 Windows 用户文件夹默认路径)

参考文章

windows 默认的总用户文件夹是 C:\Users ,每个新用户文件夹都会在这里边创建,像是文档、视频、图片下载等文件都会默认保存到用户文件夹,这样会导致 c 盘很大,重装系统备份也不方便。

安装 win10 的时候修改默认用户路径

1. 安装 Win10

当 windows 连接到网络的时候有时 Sysprep 会失败,所以建议在进入 Audit Mode 之前,全程关闭网络连接

安装上 windows,重启电脑之后,当进入区域选择界面时,按下 Ctrl Shift F3 ,这时 windows 会重启,进入 Audit Mode,然后显示一个 System Preparation Tool,将它关闭。

338 x 258

2. 新建一个 unattended answer file

现在你就可以将电脑连接到网络了。

接下来我们要使用 System Preparation Tool (Sysprep) 工具来设置用户路径。这个工具会执行一个 XML 文件中的配置(也就是 unattended answer file)

我们现在只需要一个非常简单的 answer file,只需包含以下内容:

  • windows 的版本(32 或 64 bit)
  • 用户文件夹的新路径(例如 D:/Users)

现在打开 Notepad,将下列代码粘贴进去:

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<FolderLocations>
<ProfilesDirectory>D:\Users</ProfilesDirectory>
</FolderLocations>
</component>
</settings>
</unattend>

请按照需要修改上述代码。

警告,继续操作之前,先读一下这个:

Windows 以字母来标识盘符,但是当安装了 windows 重启之后,本来你想把用户目录安装到 d 盘,但这个盘符可能会发生改变,比如变成了 e 盘,这个时候就会失败。

所以为了保证你的 d 盘盘符不变,你需要给他手动设置一下盘符,在 Audit Mode 你可以使用磁盘管理工具,先手动的将 d 盘改成 w 盘,再把它改回 d 盘。

将这个 XML 文件保存到磁盘根目录(不能是 C 盘),例如我把它保存到了:D:\relocate.xml

3. 运行 Sysprep

以管理员模式运行 cmd ,首先,确保 WMP Network Sharing Service 已停止运行:

net stop wmpnetworksvc

然后运行然下后列运命:

%windir%\system32\sysprep\sysprep.exe /oobe /reboot /unattend:d:\relocate.xml

上述命令告诉系统从 Windows\System32\Sysprep 运行 Sysprep,执行 D:/relocate.xml 中的指令,为 OOBE(the firlst boot of newly installed Windows) 重启准备系统,最后重启。

然后就继续安装配置系统,之后你所有的新用户都会在 D:/Users 这个目录下新建。

在已经安装好的 windows 系统上迁移用户目录

警告:执行这个操作之前,一定要先创建一个系统映像,做好备份。

对一个 OEM 预先安装的 Windows 使用 Sysprep 是非常危险的。电脑厂商可能有他们自己的 unattended answer file,这样可能就会忽略掉你的 unattended file。在这个过程中可能会出各种错误,所以不建议做这个。

如果中途出错了,你的备份文件可以帮助你恢复。

这个操作非常有可能导致你的电脑恢复出厂设置。

在 Win10 1703 或更高版本上,你无需像上述视频那样禁用掉现有用户,因为禁用现有用户可能会让你无法登录 windows,进而需要重装。

所以 1703 或者更高版本,请不要禁用已存在的用户!!!

1. 新建一个 unattended answer file

按照上述所讲的步骤,新建一个 unattended answer file

2. 运行 Sysprep

按上述的第三个步骤运行 Sysprep

3. OOBE

虽然你已经安装了 Win10,但是在 Sysprep 运行之后 OOBE 仍然会运行,这意味着你的电脑会经历初始化程序。

这里有两点需要注意:

  • 尽管 windows 要求你输入产品密钥,但是你不需要去输入,单击跳过就行了
  • 你之前的账户还会存在,但是 OOBE 会要求你新建一个用户,如果你新建的这个用户和已存在的用户名字相同,那就会发生错误。
  • 你只需要新建一个随意的账户,之后,再把他删掉就可以了

没必要吧。。把 c:\users 的内容复制到新分区,然后再把新分盘挂载到 c:\users 这个目录不就行了。何必重装系统。

如果 winpe 搞不定,就用 windows go 之类的,或者拆硬盘。我记得 windows 有一条命令是做这件事的,不一定要用磁盘管理器。具体哪条命令我忘了。

这个蛮方便的

每次重装我都会重新指定 文档,下载,图片,视频,音乐 这5个文件夹.

这几个文件夹我一般都分开放在其他分区.

2 个赞

不分区不就好了

哪里不方便可以具体展开吗

QQ 聊天记录可以修改位置,不受影响,微信没在意过,不了解。

浏览器扩展现在大多支持云同步设置了。cookies 这种都有过期时间,所以终究要重新登录,那重装之后遇到网站没登陆就登录下好了,我的密码用密码管理工具,不会用浏览器保存……

我不知道你说的是什么浏览器支持同步插件内的配置文件,反正我用的edge浏览器是不支持的。

的确,聊天记录什么的可以修改位置,但是我不希望每安装一个软件都修改他们的默认配置路径。直接把用户文件夹放到d盘,那样所有的软件默认配置文件夹都放到d盘了。

我也不希望重装系统以后,之前几天登录的每个网站都需要我重新输入密码,输入手机验证码登录。

所有的软件配置都在d盘,重装系统后,我要做的只是把软件安装上,不用再一个一个的去配置、登陆。

像是配置软件配置文件位置、同步等操作都是下下策,如果能一次性把用户目录放到指定位置,重装系统不需要备份,也不用担心c盘变很大,那就不需要这些操作。

Chrome 下好多扩展都支持了,我看了扩展开发文档,官方提供了同步方法,挺方便的,所以就看扩展开发者是否愿意适配了。

我用的软件比较少,需要修改配置路径的似乎只有 QQ。

比如 VS Code 也是云同步配置,安装后装一个设置同步扩展,登录就 OK 了。

我日常逛的网站也很少,就……相对无感。一般的二次验证密码管理器一并解决了。手机验证码这个,没辙,同理的还有扫描二维码啥的,觉得都是故意给用户制造障碍。

我用 Scoop,一个命令,让它按个列表自己安装去了。

我换到别的电脑上也是登陆账号恢复使用环境,所以觉得云同步挺舒适的。

要是有这个需求,mklink 命令是不是一个更好的解决思路呢

2 个赞

不愿意用它

图片都挂了…应该是禁止外链的图片。

更改还是有未知错误的,因为很多软件都默认c盘的. 而且应用软件多数的缓存不大.
我的方法是 :

  1. 做一个全新的系统,把必装的应用都装完,然后进入安全模式用dism备份.
  • 必装的是要注册的那种软件,比如office.系统还原后不用再注册一次那种.
  • 可选的是可以在备份后装的,系统还原对其影响不大的.比如bat软件.
  1. 优化必装软件,前提是你能知道这些软件的缓存是怎么分布的.比如office,安装之后,在c盘会有个隐藏的文件夹 MSO Cache,这个可以删除的,或者你打包放到别的盘,出问题可以复制回来.有些可以更改缓存路径的都更改到非系统盘.比如firefox的个人配置文件等.比如ms edge,安装之后实体是200m多点,但是程序文件夹里面还有个200m的安装包,就400m+了.删!
  2. 优化系统盘,比如把休眠和虚拟内存关了,这可以节省6g,指的是节省备份镜像的空间,系统还原再开启休眠和虚拟内存也是没问题的.把索引删除了,这里可以节省好多个g,删除索引是为了减少备份镜像的空间.系统还原后,索引会继续工作的.
  3. 用treesizefree扫描C盘,看看那些可以删的,就删了,比如系统的installer文件夹里面的安装程序,太大的就删了,比如vmware安装后,在installer里就有个400m的卸载包`,GeForce驱动安装后,程序里也有个几百m的安装包,这些都是可以删的,没影响.还有win10 的更新文件夹都删了.
  4. 折腾下来后,感觉到满意了,就可以进命令行模式,用dism备份个wim的镜像,不装软件情况下,备份wim的镜像是4.5g.备份完后就可以安装可选软件了,随便折腾,不爽就用dism恢复系统.
  5. 可选软件比如BAT的软件,都可以用sandboxie限制它们,这样他们的数据就不会在C盘出现了.

我反对移动整个user目录。c盘设大,工作文件不要放c盘,软件多用便携版,完事。重装系统就要干净的系统,做一次断舍离,搞清楚自己需要什么不需要什么。

2 个赞

我除了office安装在c盘,多数软件都安装到其他分区.
浏览器安装在其他分区, 而且数据也保存在浏览器所在文件夹.

qq和微信的记录都保存在我的文档文件夹.

所以appdata没啥保存价值了.

我还是选择把用户数据放到其他盘吧,一步省事,用 dism++ 备份 C 盘系统也方便,没有了个人数据,备份数据也快,备份体积也小。我用的是 1T 的固态硬盘,但就是不愿把除了软件本身外的个人文件放到系统盘。所以现在是 C 盘 150G,其它空间给了 D 盘。

是的,这一点上 Linux 非常优秀。

之前我尝试过,但太麻烦,用系统定义的默认路径最省事。

我用的便携版软件超多的:

我懒得自定义安装位置。

文档文件夹默认也是在 C 盘,还是得手动修改一次。

我用的许多便携版,但许多软件无法做便携版。

是否断舍离是你的自由,但在没有必要的时候,我不愿意这样做

必装的软件有很多呀:WGesture, Notepad++, VScode, Typora, Quicker, PotPlayer, OBS, PyCharm, PowerToys, 等等等等等等等等

OBS是可以便携的 加启参数"-p"

jb全家桶 可以修改bin\idea.properties里面的参数 不过好像每次安装都要重新配置(不是太清楚,我每次安装都是自己解压安装包替换的,不清楚安装的时候会不会替换这个文件)

#---------------------------------------------------------------------
# Uncomment this option if you want to customize path to IDE config folder. Make sure you're using forward slashes.
#---------------------------------------------------------------------
# idea.config.path=${user.home}/.PyCharm/config
idea.config.path=../data/config

#---------------------------------------------------------------------
# Uncomment this option if you want to customize path to IDE system folder. Make sure you're using forward slashes.
#---------------------------------------------------------------------
# idea.system.path=${user.home}/.PyCharm/system
idea.system.path=../data/system
1 个赞

好吧. 第二个字是精髓.

由于有一些软件兼容性,ntfs权限,bitlocker加密解密的因素,转移系统相关的目录路径在重装系统后还能否正常用有很多不确定性。
我自己笔记本用了三块硬盘,一块SSD系统,一块SSD存放工作文件 临时文件斜体示例 便携版软件。一块机械硬盘存放持久存储的文件以及安装体积很大的游戏
当然这是我的观点,举出例子只是大家看看有没有参照性。我个人习惯重装系统就做一次断舍离,不强求改变别人的习惯。
另,不会大家都只有一台电脑吧?不同电脑之间如何保持一致的体验呢?靠的是便携软件,靠的是软件可导出导入配置文件,靠软件自身不需要复杂配置,靠软件自身的同步,靠割裂感强迫人摒弃不必须的软件和插件,而不能靠同步user目录

1 个赞