it-swarm.cn

在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驱动器。

65
Scott

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

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

  1. 引导至安装介质,然后转到命令提示符( 在安装对话框中按Shift + F1
  2. 使用Robocopy将C:\ Users复制到D:\ Users: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有一个 博客文章 ,它详细说明了移动配置文件文件夹的方法,该方法将重新创建此方法遗漏的联结。如果您在旧版应用程序中遇到任何问题,请在此处查看,看看他的方法是否可以解决问题。

66
Jimmie R. Houts

[最简单推荐方式是将单个特殊文件夹移动到用户目录内,例如文档,音乐,视频等。您可以按照以下步骤操作:

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

不利的一面是,它仍然保留了“用户”主文件夹。

hard方法要复杂得多且冒险得多:

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

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

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

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

  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. 将默认密钥的值更改为新的用户配置文件位置(例如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提供的文件。然后执行查找句柄并搜索文件名的一部分。 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中更改用户配置文件文件夹位置

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

11
Aron Rotteveel

这是正确的过程

  1. 引导至安装介质,并转到命令提示符(我相信您需要先单击修复)
  2. 使用Robocopy将C:\ Users复制到D:\ Users: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的结点

我执行了Jimmie指令,并且几乎要工作了。但是,我的IE有一个奇怪的问题,我无法下载文件。我找到了解决下载问题的解决方案,并记录在 superuser

5
Hapkido

在安装过程中使用无人值守脚本“自动”移动C:\ Users的一些资源。

微软在移动特殊文件夹周围有一个 KB(有一些问题 ),这对通读很有用。

对于无人参与脚本本身,有一个名为FolderLocations的元素,它具有一个ProfilesDirectory子级,您可以这样指定:

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-Microsoft-com:unattend">
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup"
publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"
processorArchitecture="x86">
<FolderLocations>
<ProfilesDirectory>d:\users</ProfilesDirectory>
</FolderLocations>
</component>
</settings>
</unattend>

这是有关 部署Vista 的Microsoft文章,其中包括如何处理unattend.xml,这是我从扩展中找到的最佳资源 如何移动Ramesh Srinivasan的特殊文件夹文章 其中深入解释了如何执行此操作以及要注意什么(包括以下事实:即使在运行此无人参与脚本之后(例如,作为setup.exe的参数),仍然存在诸如c:\ documents和设置的连接点)到您需要手动修复的旧位置(如果可能))。

3
Oskar Duveborn

"C:\users"是一个系统文件夹,等效于"C:\Documents and Settings"在Windows XP/2000/NT上,因此移动文件夹非常困难,即使不是没有可能。有多种方法可以解决此问题,方法是通过TweakUI或一些类似的技巧(而不是父文件夹)移动子文件夹,而不是使用父文件夹,有关此问题的文章很多,请参见此处:

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;zh-CN;31484

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

但是对于Vista/Windows 7,似乎此过程可能变得更简单了。以下是一些文章,告诉您如何在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/

2
mrTomahawk

有点晚了...

通过将单个配置文件而不是整个目录移动,可以避免将c:\ users移至另一个磁盘的问题。

如果您在链接到新目录的c:\ users中保留一个结点,则所有路径都可以继续使用,就像Jimmie Houts解决方案一样,但是我不移动管理员,网络服务,公共等,因此所有正常的系统功能(例如Windows更新,继续正常工作。

伊恩

2
Ian Murphy

我研究了很长时间。不能做您可以移动“特殊”文件夹(“文档”,“我的音乐”等),但是不能重新放置sers目录。

0
user1797

这并不是您真正需要的,但是如果在Windows 7中,则一个很好的替代方法是更改​​库的位置。通过这种方法,您可以将文档,图片等保存,但不能将所有配置文件保存在D驱动器中。

昨晚我创建了一个可能对您有用的工具: 设置库

0
Ricardo Polo

其中大部分是从他人那里复制的,然后由现任作家tu servidor进行修改和扩展。

要最轻松地将所有用户文件和用户程序文件从引导驱动器(在我的情况下为SSD)中移出,请遵循以下说明。

首先,创建一个还原点,以防万一:1.单击“开始”按钮,右键单击“计算机”,然后单击“属性”,打开“系统”。 2.在左窗格中,单击“系统保护”。如果系统提示您输入管理员密码或确认,请键入密码或提供确认。 3.单击系统保护选项卡,然后单击创建。 4.在“系统保护”对话框中,键入描述,然后单击“创建”。

然后:转到系统恢复/命令提示符:使用Win7安装DVD引导,选择语言,货币和键盘,然后单击下一步。在“立即安装”屏幕上,选择“修复计算机”,系统恢复选项将询问您是否要“修复并重新启动”,选择“否”。然后,确保Windows 7被列为已安装的可用于恢复的操作系统之一,并且已被选中,然后按下一步。您将获得恢复工具列表。选择“命令提示符”。

找到从Win7介质加载的虚拟Windows驱动器(可能是C或X),找到实际的Windows/SSD驱动器(D或E),然后找到HDD(常规硬盘驱动器)(D或E)。

通常在我的系统中,C =带有Windows的SSD,D = HDD数据驱动器

使用Win7 Update介质,恢复模式下的驱动器设置不同,因此:X:虚拟/临时Windows驱动器,E:实际Windows/SSD驱动器,D:HDD,我要放置\ Users的硬盘。

有人报告说,“系统恢复”模式将按如下方式设置其驱动器:C:虚拟/临时Windows驱动器D:实际Windows/SSD驱动器E:HDD,他们希望将/ Users设置为打开。

在命令提示符中,您将使用Robocopy(NOx xcopy!)将c:\ Users复制到d:\ Users,然后删除旧的c:\ Users,然后从c:\ Users到D:\ Users建立符号链接。请注意,您必须按顺序执行这些操作,并且在执行此操作之前必须没有d:\ Users目录。

注意:在系统恢复命令“提示”窗口中,驱动器与退出恢复模式后的驱动器不同!因此,请调整以下命令以了解驱动器如何进入恢复模式,然后稍后再进行更正。

我用过:robocopy/mir/xj E:\ Users D:\ Users

要将/ Users从Windows/SSD移至HDD。/mir告诉robocopy镜像目录,这将复制所有文件和权限。/xj非常重要,这告诉robocopy不要遵循连接点。如果您忘记了这一点,将会遇到很多麻烦。确保没有文件复制失败(FAILED列= 0)。

然后,必须先从Windows/SSD(c :)驱动器中删除旧的“用户文件夹”,然后才能创建符号链接:我用过:rmdir/S/Q E:\ Users

创建一个指向新的Users文件夹的NTFS Junction /符号链接:

我用过:mklink/J E:\ Users D:\ Users

使用/ J开关创建一个硬符号链接的结点。 (如果使用/ D开关,则还必须编辑注册表,因为它不是硬链接。)使用/ J,当Windows查找C:\ Users目录时,它将找到它!但是它将在HDD而不是SSD上。整rick

要查看已创建内容的证明,请仍然在命令提示符窗口中,进入实际的Windows/SSD并执行“ dir”命令,您将看到:“ Users [D:\ Users]”

现在重新启动,您将在HDD上看到/ Users,然后就可以了。无需进一步配置或摆弄。新的用户配置文件以及所有特定于用户的数据都将存储在d:驱动器上。它是可以实现的,而无需在注册表中进行任何混乱,搜索和替换值,也不必以任何方式对新的配置文件进行混乱。完全设定并忘记。

0
ohdannyboy