我可以将 C:\Users 文件夹移动到 D:\ 驱动器吗?

我可以将 C:\Users 文件夹移动到 D:\ 驱动器吗?

基本上,问题是这样的:

我有一台 Windows 10 PC,配备 32 GB EMMC 存储空间,可以满足我发送邮件、进行基本打字等需求。有一个插槽可以插入 MicroSD 卡 ( D:\),我使用 128GB 卡来存储文件。我在其中安装了所有程序,从 MS Office 到 Adob​​e Reader。由于 C:\ 驱动器只有 32GB,因此剩余空间不多(90% 已满)。因此,我想将 C:\Users 文件夹移动到 D:\ 驱动器以释放一些空间。

关于 C:\Users 文件夹的一些背景知识:

将所有隐藏文件显示出来后,其大小约为 5.5 GB,如下所示:

在此处输入图片描述

因此,如果我设法将其发送到另一个驱动器,之后我将在 C:\ 中获得大量空间。

因此,出于这个目的,我开始在 SuperUser 中搜索类似的东西。大多数问题都是几年前针对 Windows 7 或 8 提出的,因此如果您认为这个问题与其他问题完全重复,请考虑这种情况。

在我的探索中,我遇到的第一件事是这样的:

将预装的 MS Office 移动到另一个驱动器

我已经使用这个技巧(涉及使用符号链接)将我的 MS Office 移动到外部 D:\ 驱动器,但我不确定此方法是否适用于移动 C:\Users。

我接下来遇到的事情是这样的:

将 c:\Users 文件夹永久移动到 Windows 7 中的另一个分区

但是,这个问题在 2011 年就被问过了,现在已经关闭了。这个问题涉及的操作系统是过时的 Windows 7。所以,我担心按照提供的解决方案操作后会遇到问题。

那么,有人能告诉我是否可以移动C:\UsersD:\驱动器以及如何进行吗?此外,移动C:\Users到其他驱动器有哪些风险?而且,如果我将来升级当前的 Windows 10 版本,这会产生影响吗?

附言:在有人问我为什么使用如此旧版本的 Windows 10 之前,我想告诉你,我使用的是 Windows 10 v1709,因为空间不足,我无法升级到较新版本 :(

答案1

我遇到了一个tenforums.com 上的教程中所述的“方法 2”建议:

  1. 创建一个无人值守的应答文件,将其保存为例如。D:\relocate.xml
<?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>
  1. 运行 sysprep

使用以管理员身份运行的 powershell 或 cmd-prompt 从本地管理员帐户运行此程序。

%windir%\system32\sysprep\sysprep.exe /oobe /reboot /unattend:d:\relocate.xml
  1. Windows 将重新启动,将 C:\Users 移动到 D:\Users,并进行自我更新以适应新位置。

有一个支持视频网站上有更好的解释,很多人都说这对他们有用。

Microsoft 文章将用户和 ProgramData 目录重新定位到除 Windows 目录所在的驱动器之外的其他驱动器支持这种方法。


我的经历

我尝试了上述方法,我的电脑在重启后花了一整晚的时间在青色窗口图标上旋转球,在磁盘上执行某些操作,但从未完成。关闭电源并打开电源时回到同一个位置,但显示一个对话框:

“Windows 无法完成安装。要在此计算机上安装 Windows,请重新启动安装。”

我尝试了以下方法,最终成功了:

  • 将 C 盘从 MBR 转换为 GPT(一开始导致恢复时出现可怕的问题),因为我认为我可能需要超过 4 个分区
  • 移除显卡并使用内置显卡(修复 GPT/UEFI 切换后可怕的黑屏问题)
  • 删除了 Linux 子系统(有迹象表明 AppData/.../lxss 文件可能会导致问题)
  • 卸载 VirtualBox(一次 sysprep 尝试出现错误,表明它不兼容)
  • 清除 C:\ 上的部分空间,并将重新定位的“My *”目录移回 C:\Users\Ed
  • 违反方法 2 视频上方的说明“使用 Windows 10 版本 1703 及更高版本,您不必如视频中所示禁用现有用户……甚至可能会将您完全锁定在 Windows 之外” - 这成功了。

我要么根据以下说明从备份中恢复 C:网站其他地方的说明或者每次向前迈出一小步。

结论:这种方法很管用,但备份时一定要小心谨慎。坚持就会有回报。

答案2

是的,我们可以通过 Powershell 脚本自动执行整个过程来移动用户配置文件。首先创建一个临时管理帐户。然后运行以下命令:

$ProfilePaths = Get-ChildItem "REGISTRY::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" | 
  Where-Object {$_.Name -match "^S-1-5-21*"} | 
    Select-Object -ExpandProperty Name -Skip 1 | Foreach {
      (Get-ItemProperty "REGISTRY::$($_)" -Name "ProfileImagePath").ProfileImagePath
    }
$ProfilePaths = $ProfilePaths | Where-Object {$_ -ne "C:\Users\$($env:Username)"}
$ProfilePaths | Foreach {
  $Current = "$_"
  $Move = $_ -replace "^C:","D:"
  Move-Item -Path "$Current" -Destination "$Move"
  $User = New-Object System.Security.Principal.NTAccount("$(Split-Path "$Current" -Leaf)")
  $SID = $User.Translate([System.Security.Principal.SecurityIdentifier])
  Set-ItemProperty "REGISTRY::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$($SID.Value)" -Name "ProfileImagePath" -Value "$Move"
}
Move-Item -Path "C:\Users\Default" -Destination "D:\Users\Default"
Set-ItemProperty "REGISTRY::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" -Name "Default" -Value "D:\Users\Default"
Move-Item -Path "C:\Users\Public" -Destination "D:\Users\Public"
Set-ItemProperty "REGISTRY::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" -Name "Public" -Value "D:\Users\Public"

脚本的作用:

  • 首先移动所有配置文件
  • 然后在注册表中设置一个值,让窗口通知新位置

从临时管理员帐户运行此程序

不幸的是,您无法移动 C:\Users,但可以批量移动所有用户配置文件。

答案3

由于相同的原因,我已多次这样做过,30-64 GB 的 SSD 带有辅助驱动器(HD 或 SSD),并且驱动器上的空间不足。

移动“用户”数据很容易(可以在 Windows 中执行此操作),桌面、文档、音乐等(只需右键单击并拖动到新位置),然后注销用户并重新登录。这可能不是您想要的。隐藏的应用程序文件夹、注册表等更难移动,如之前的回复所述。

您的空间不足问题可能不是用户配置文件的问题,而是 Windows 10 下载的应用程序占用了大量空间。我们在 60GB SSD 上发现,其中 32GB 是 Candy Crush 和其他实际上并未安装的垃圾游戏。

这些位于 C:\Program Files\WindowsApps\ 文件夹中。您可以查看那里,看看是否找到安装文件的多个副本。如果找到,您可以通过 Powershell remove-app 命令删除它们,然后删除文件夹。

答案4

它不受官方支持,所以如果你这样做的话可能会出现问题。

Windows 11 文档 其中写道:“我们不建议使用此设置,除非在测试环境中。”

还有zdnet文章列出过去存在的改变问题。

相关内容