在 vista/W7 下将 c:\users 移动到 d:\users 的最佳方法是什么

在 vista/W7 下将 c:\users 移动到 d:\users 的最佳方法是什么

我刚刚安装了 Windows 7 RC1,并且想将 c:\users 移动到 d:\users。

做到这一点的最好方法是什么?


由于 Windows 7 在恢复控制台中创建了一个安装为 C: 的保留分区,因此我必须使用以下命令

robocopy /mir /xj D:\Users E:\Users
mklink D:\Users D:\Users /j

mklink 命令中的两个 D 都是正确的。系统重新启动时,恢复控制台中的 D 盘变为 C 盘。

答案1

安装 Windows 后,您可以轻松地将整个 C:\Users 文件夹移动到其他驱动器:

警告:当您需要执行系统还原时,这样做可能会导致问题

  1. 启动安装介质并进入命令提示符(在安装对话框中按 Shift + F10
  2. 使用 Robocopy 将 C:\Users 复制到 D:\Users:robocopy c:\Users d:\Users /mir /xj /copyall
    a./mir告诉 robocopy 镜像目录,这将复制所有文件
    b./xj非常重要,这告诉 robocopy 不要遵循连接点。如果你忘记了这一点,你会遇到很多麻烦。c
    ./copyall将复制所有属性,包括 ACL 和所有者信息
  3. 验证文件是否已成功复制
  4. 删除 c:\Users
  5. 创建指向 d:\Users 的连接点:mklink c:\Users d:\Users /j

就是这样。自从 Vista 发布 RTM 以来,我一直在使用这个过程,没有出现任何问题。

这是一个文章这也解释了这一点。只需使用 robocopy 而不是 xcopy(如他在文章中所做的那样)即可避免可能出现的 ntfs 权限问题。

更新:因为我发现了困难,所以我想提一下,如果您打算使用此方法移动“程序数据”或“程序文件”,您会失望地发现一切都按预期工作,但 Windows 更新将不再安装。我不确定 Win 7 是否已修复此问题。

更新 2:@Benjol 有一个博客文章详细说明了移动配置文件文件夹的方法,该方法将重新创建此方法遗漏的连接。如果您在使用旧版应用程序时遇到任何问题,请查看此处,看看他的方法是否能解决问题。

答案2

最容易受到推崇的方式是移动用户目录内的各个特殊文件夹,例如文档、音乐、视频等。您可以按照以下步骤执行此操作:

  1. 右键单击 > 属性
  2. “位置”选项卡
  3. 填写所需位置并点击“移动”

这样做的缺点是它仍然保留主“用户”文件夹。

难的方式要复杂得多,而且风险也更大:

在寻找解决方案的过程中,我发现从系统驱动器移动用户配置文件目录位置的唯一两种简单方法是

  1. 使用无人值守安装文件在安装过程中设置用户配置文件文件夹。
  2. 移动用户配置文件内的各个文件夹,这可以使用资源管理器完成(这将更新注册表项 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders 和 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders)。

但是,这对我来说还不够好,我希望将我的实际用户配置文件文件夹(包括注册表设置)移动到单独的分区/卷。我发现这实际上并不难,只要您习惯于批量替换注册表项和值即可。

以下是我移动用户配置文件位置的方法。请注意,我希望移动所有配置文件,包括公共和默认配置文件,因此如果您不想这样做,可以跳过其中一些步骤:

  1. 确保您已完整备份系统!
  2. 将原始默认配置文件目录复制到新位置(例如从 C:\Users\Default 到 D:\Users\Default)。
  3. 将原始公共配置文件目录复制到新位置(例如从 C:\Users\Public 到 D:\Users\Public)。
  4. 导航到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList。
  5. 将 Default 键的值更改为新的用户配置文件位置(例如 D:\Users\Default)。
  6. 将公钥的值更改为新的用户配置文件位置(例如 D:\Users\Public)。
  7. 将 ProfilesDirectory 的值更改为新的用户配置文件位置(例如 D:\Users)。
  8. 此时,您需要重新启动并以从未登录过且因此未创建配置文件的其他用户身份重新登录。就我而言,管理员用户从未登录过,因此我启用了它,以便管理员可以登录并使用它。您可以通过加载计算机管理来启用管理员登录,然后转到用户帐户,编辑管理员的属性,然后取消选中禁用登录。
  9. 使用新用户帐户首次登录后,您将看到“正在创建桌面”等内容,此时 Windows 正在创建您的配置文件。请注意,新配置文件应在新位置创建。
  10. 登录后,尽量关闭尽可能多的应用程序。这样可以防止大多数文件被锁定而无法复制。
  11. 将整个原始用户配置文件文件夹从原始位置复制到新位置(例如从 C:\Users* 复制到 D:\Users)。(复制开始后请参阅下一步)。
  12. 在复制过程中需要注意一些事项。有数千个 .TMP 文件被锁定,无法复制。我只是跳过了这些文件。我按住 Alt-S,这样我就可以看到所有跳过的文件,并确保只跳过了 .TMP 文件。是的,这花了一点时间,但至少我确信我复制了所有文件。使用命令提示符或 powershell 可能会使这个过程更容易。
  13. 如果有些文件无法复制,您可以运行 sysinternals 提供的文件 procexp.exe。然后执行“查找句柄”并搜索文件名的一部分。procexp 将告诉您哪些程序锁定了该文件。不过,只要您关闭了尽可能多的程序,这种情况就不会发生。
  14. 查找并下载一个可以对注册表进行搜索和替换的程序。我不会推荐任何程序,因为我没有找到一个可以完美运行的程序。我最终下载了几个不同的免费软件应用程序并使用了它们。
  15. 使用注册表搜索和替换程序,搜索原始用户配置文件文件夹并将其替换为新的用户配置文件文件夹(例如,搜索“C:\Users”并替换为“D:\Users”)。请注意,我使用的某些应用程序只会更改值而不会更改键名。但是,需要更改的键都与 MuiCache 相关。我不知道这些是否真的需要更新。我只是为了确保这一点。
  16. 注销。以同一用户身份重新登录。重复第 14 步,直到没有需要替换的内容。执行此步骤的原因是,在注销时,某些程序似乎会使用旧的用户配置文件路径来更新注册表。
  17. 运行 regedit.exe 并搜索原始用户配置文件路径,并确保它不存在。执行此步骤的原因是(如步骤 13 中所述),我不信任我使用的任何注册表搜索和替换程序。我最终需要手动更新大约十几个键和值,因为搜索和替换遗漏了它们。
  18. 为了您可以轻松找到不使用注册表和硬编码配置文件路径的程序,请重命名原始配置文件文件夹(例如,将 C:\Users 重命名为 C:\~Users)。
  19. 注销。以普通用户身份重新登录。除了使用“硬编码”用户配置文件位置的程序外,一切都应该正常工作。
  20. 有两种简单的方法可用于查找使用“硬编码”配置文件位置且仍在寻找原始用户配置文件路径的程序。您可以使用上面提到的 procexp.exe 技巧并在原始配置文件位置搜索句柄。您还可以监视原始配置文件位置以查看是否创建了任何新文件夹或文件。例如,在我的情况下,FolderShare 在目录 C:\Users\MyUsername\AppData\Local\FolderShare 中创建了一些文件夹和文件。因此,我更新了 FolderShare 设置以指向不同的路径,然后删除了 C:\Users 目录(请注意,C:\~Users 仍然作为备份存在)。
  21. 由于您现在确信所有数据都已移动(对吗?),您可以删除原始用户配置文件位置的备份(例如 C:\~Users)。

来源:在 Vista 中更改用户配置文件文件夹位置

看到微软让更改特殊文件夹的位置变得如此容易,而更改整个用户文件夹结构的位置却如此困难,我会强烈建议你采取简单的方法

答案3

正确的流程如下

  1. 启动安装媒体并进入命令提示符(我相信您需要先单击修复)
  2. 使用 Robocopy 将 C:\Users 复制到 D:\Users: robocopy c:\Users d:\Users /mir /xj/复制全部
    a. /mir 告诉 robocopy 镜像目录,这将复制所有文件
    b. /xj 非常重要,这告诉 robocopy 不要遵循连接点。如果你忘记了这一点,你会遇到很多麻烦。
    c. /copyall 将复制所有属性,包括 ACL 和所有者信息
  3. 验证文件是否已成功复制
  4. 删除 c:\Users
  5. 创建指向 d:\Users 的连接点:mklink c:\Users d:\Users /j

我按照 Jimmie 的说明操作,几乎成功了。但是,我在使用 IE 时遇到了一个奇怪的问题,我无法下载文件。我找到了解决下载问题的解决方案,它记录在超级用户

答案4

"C:\users"是一个系统文件夹,相当于"C:\Documents and Settings"Windows XP/2000/NT 上的文件夹,因此移动该文件夹非常困难,甚至不可能。有几种方法可以解决这个问题,即通过 TweakUI 或一些类似的 hack 移动子文件夹而不是父文件夹,关于此问题的帖子很多,请参见此处:

http://www.tech-recipes.com/rx/1409/move-your-documents-and-settings-username-profile-off-of-the-c-drive/

http://support.microsoft.com/kb/236621

http://support.microsoft.com/default.aspx?scid=kb;en-us;314843

http://support.microsoft.com/default.aspx?scid=KB;EN-US;q310147&ID=KB;EN-US;q310147

但对于 Vista/Windows 7,这个过程似乎变得更简单了。以下是一些帖子,它们告诉您如何在 Vista 上执行此操作,而 Vista 的核心就是 Windows 7:

http://www.ehow.com/how_2064387_relocate-user-files-windows-vista.html

http://www.technospot.net/blogs/how-to-move-users-folder-to-different-location-in-windows-vista/

http://www.howtogeek.com/howto/windows-vista/moving-your-personal-data-folders-in-windows-vista-the-easy-way/

相关内容