将 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,将它关闭。

2014100121h0857.png

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) 重启准备系统,最后重启。

2014100121h2222.png

然后就继续安装配置系统,之后你所有的新用户都会在 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 有一条命令是做这件事的,不一定要用磁盘管理器。具体哪条命令我忘了。

你愿意给 Users 文件夹单独一个分区吗?反正我是不愿意

这个蛮方便的

AppData 移动不了,还是鸡肋

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

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

2赞

这些还好说 ,appdata 有几十个g的大小是我最头疼的

我个人以为没啥保存价值.

不分区不就好了

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

重装完所有旧数据都在 C:\Windows.Old\Users 里边,直接剪切回 C:\Users 就可以了,每次重装花不少时间改路径才是不方便……

所有的东西都放到c盘,那你个人数据在重装系统的时候怎么办,直接扔掉吗?

几十个g甚至上百个g的个人资料。如果需要备份的话,在重装的时候,就还需要迁移到其他的磁盘,重装完系统再迁移回来,耗费好几个小时,尤其是 AppData 里边的细小文件和qq微信等软件的聊天记录都是特别小的。细碎文件迁移非常慢。

再比如 appdata 里边存放有我浏览器的数据,比如插件,比如保存在历史记录和密码, 还有插件的配置,的确,浏览器有同步功能,但是顶多给你把历史记录插件同步过来,网页的登录记录 cookies 还有插件的配置都不会给你同步,如果不花时间把 appdata 备份,重装系统后,这些东西都要手动弄。我可不想重装系统后,再手动配置一下所有浏览器插件。

桌面下载等文件夹还好迁移到其他地方,但是 appdata 这个文件夹是没有迁移的办法的.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2赞

不愿意用它

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

这是 linux 的标准做法。各种 linux 发行版都会建议用把 /home 目录挂一个单独的分区。

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赞