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

Sco*_*ott 65 windows windows-7 windows-vista

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

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


由于 Windows 7 创建了一个保留分区,挂载为 C: 在恢复控制台中,我不得不使用以下命令

robocopy /mir /xj D:\Users E:\Users
mklink D:\Users D:\Users /j
Run Code Online (Sandbox Code Playgroud)

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

Jim*_*uts 66

安装 Windows 后,您可以很容易地将整个 C:\Users 文件夹移动到不同的驱动器:

警告:如果/何时需要执行系统还原,这样做可能会导致问题

  1. 启动到安装媒体,并进入命令提示符(在安装对话框中按 Shift + F10
  2. 用户\到d:使用的Robocopy来将C \用户:robocopy c:\Users d:\Users /mir /xj /copyall
    一。/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 有一篇博客文章,详细介绍了移动配置文件文件夹的方法,该方法将重新创建此方法遗漏的连接点。如果您遇到遗留应用程序的任何问题,请查看此处,看看他的方法是否解决了问题。

  • -1 :请注意,此方法不会重新创建 robocopy 未复制的所有连接(nb robocopy 即使没有 /xj 也无法复制连接,它会创建新文件夹)。这不会停止 Windows 工作,但可能会破坏旧应用程序,这些应用程序会寻找“我的文档”等文件夹...... (8认同)
  • +1 @Jimmie 详细解释了如何做到这一点。我真的厌倦了 Windows 只是去把用户数据和应用程序安装放在任何地方 - 任何感觉都没有先问我!WTF他们让改变变得如此困难吗??如果我的主分区是 SSD 驱动器并且我在其上安装了 Windows 以提高性能怎么办?我真的不希望窗户使用那个分区作为该死的胰腺! (3认同)

Aro*_*eel 11

最简单的推荐的方法是将用户目录内的个别特殊文件夹,如文档,音乐,视频等,您可以通过以下步骤做到这一点:

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

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

的方法是很多更复杂和危险:

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

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

但是,这对我来说还不够好,我希望将我的实际用户配置文件文件夹移动到单独的分区/卷,包括注册表设置。我发现它实际上并没有那么难,只要您对批量替换注册表项和值感到满意。

这是我移动用户个人资料位置的方法。请注意,我希望移动所有配置文件,包括 Public 和 Default,因此如果您不想要,可以跳过其中一些步骤:

  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. 如果在您的情况下,有些文件无法复制,您可以运行 procexp.exe,它是由 sysinternals 提供的文件。然后执行 Find Handle 并搜索文件名的一部分。procexp 会告诉您哪些程序正在锁定文件。但是,只要您关闭尽可能多的程序,这种情况就不应该发生。
  14. 查找并下载将在注册表上执行搜索和替换的程序。我不会推荐一个,因为我没有找到一个完美运行的程序。我最终下载了一些不同的免费软件应用程序并使用了所有这些应用程序。
  15. 使用注册表搜索和替换程序,搜索原始用户配置文件文件夹并将其替换为新的用户配置文件文件夹(例如搜索“C:\Users”并替换为“D:\Users”。请注意,某些我使用的应用程序只会更改值而不是键名。但是,需要更改的键都与MuiCache有关。我不知道这些是否真的需要更新。我只是为了确定。
  16. 登出。使用同一用户重新登录。重复步骤 14,直到没有任何东西可以更换。这一步的原因是在注销时,某些程序似乎使用旧的用户配置文件路径更新注册表。
  17. 运行 regedit.exe 并搜索原始用户配置文件路径并确保它不存在。执行此步骤的原因是(如步骤 13 中所述),我不信任我使用的任何注册表搜索和替换程序。我最终需要手动更新大约十几个键和值,因为搜索和替换错过了它们。
  18. 为了方便您找到不使用注册表和硬编码配置文件路径的程序,请重命名原始配置文件文件夹(例如,将 C:\Users 重命名为 C:\~Users)。
  19. 登出。以您的常用用户身份重新登录。除了使用“硬编码”用户配置文件位置的程序外,一切都应该正常工作。
  20. 有两种简单的方法可用于查找使用“硬编码”配置文件位置并仍在寻找原始用户配置文件路径的程序。您可以使用上面提到的 procexp.exe 技巧并在原始配置文件位置搜索句柄。您还可以监视 oringal 配置文件位置以查看是否创建了任何新文件夹或文件。例如,就我而言,FolderShare 在目录 C:\Users\MyUsername\AppData\Local\FolderShare 中创建了一些文件夹和文件。因此,我更新了 FolderShare 设置以指向不同的路径,然后删除了 C:\Users 目录(注意 C:\~Users 仍然作为备份存在)。
  21. 由于您现在确信您的所有数据都已移动(对吗??????),您可以删除原始用户配置文件位置的备份(例如 C:\~Users)。

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

看到 Microsoft 使更改特殊文件夹的位置变得如此容易,而更改整个用户文件夹结构的位置如此困难,我强烈建议您采用简单的方法

  • 哎呀!不会向我更糟糕的敌人推荐该流程:-) 但是... +1 因为它有效,无论看起来多么混乱。我想知道还有什么其他诸如“hack”之类的东西可能会破坏线路... (5认同)
  • @Aquarion :但是 Local、LocalLow 和 Roaming 目录*可以*使用位置选项卡移动:) (2认同)

Hap*_*ido 5

这是正确的过程

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

我做了吉米的指令,我几乎要工作了。但是,我在使用 IE 时遇到了一个奇怪的问题,我无法下载文件。我找到了解决我的下载问题的解决方案,它记录在超级用户上