我刚刚安装了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驱动器。
我刚刚安装了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驱动器。
Answers:
安装Windows之后,您可以很容易地将整个C:\ Users文件夹移动到另一个驱动器:
警告:如果/当您需要执行系统还原时,这样做可能会导致问题
robocopy c:\Users d:\Users /mir /xj /copyall
/mir
告诉robocopy镜像目录,这将复制所有文件/xj
非常重要,这告诉robocopy不要遵循连接点。如果您忘记了这一点,将会遇到很多麻烦。/copyall
将复制所有属性,包括ACL和所有者信息mklink c:\Users d:\Users /j
而已。自从Vista顺利运行RTM以来,我一直在使用此过程。
这是一篇说明它的文章。只需使用robocopy而不是xcopy即可,就像他在文章中所做的那样,以避免可能的ntfs权限问题。
更新:因为我发现了困难的方法,所以我想我还要提到的是,如果您打算使用这种方法移动“程序数据”或“程序文件”,您将失望地发现一切都按预期进行,但Windows更新将不再安装。我不确定Win 7是否已解决。
更新2:@Benjol有一篇博客文章,其中详细介绍了移动个人档案文件夹的方法,该方法将重新创建此方法遗漏的联结。如果您在旧版应用程序中遇到任何问题,请在此处查看,看看他的方法是否可以解决问题。
在最简单的和推荐的方法是将用户目录内的个别特殊文件夹,如文档,音乐,视频等,您可以通过以下步骤做到这一点:
不利的一面是,它仍然保留了主“用户”文件夹。
该硬的方法是很多更复杂和危险:
在寻找解决方案时,我发现将用户配置文件目录位置从系统驱动器中移动的两种简单方法是:
- 使用无人参与的安装文件在安装过程中设置“用户配置文件”文件夹。
- 移动用户配置文件中的各个文件夹,这可以使用资源管理器完成(这将更新注册表项HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Shell文件夹和HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ User外壳文件夹)。
但是,这对我来说还不够好,我希望将实际的用户配置文件文件夹移动到单独的分区/卷,包括注册表设置。我发现实际上并不难,只要您可以批量替换注册表项和值即可。
这是我移动用户个人资料位置的方法。请注意,我希望所有配置文件都被移动,包括“公共”和“默认”,因此如果您不希望这样做,可以跳过其中一些步骤:
- 确保您已完整备份系统!
- 将原始的默认配置文件目录复制到新位置(例如,从C:\ Users \ Default到D:\ Users \ Default)。
- 将原始的“公共配置文件”目录复制到新位置(例如,从C:\ Users \ Public复制到D:\ Users \ Public)。
- 导航到HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList。
- 将默认密钥的值更改为新的用户配置文件位置(例如D:\ Users \ Default)。
- 将公用密钥的值更改为新的用户配置文件位置(例如D:\ Users \ Public)。
- 将ProfilesDirectory的值更改为新的用户配置文件位置(例如D:\ Users)。
- 此时,您需要以其他用户的身份重新启动并重新登录,该用户之前从未登录过,因此没有创建配置文件。就我而言,管理员用户以前从未登录过,因此我启用了它,以便管理员可以登录并使用它。您可以通过加载“计算机管理”来启用管理员登录,然后转到“用户帐户”,编辑“管理员”的属性,然后取消选中“禁用登录”。
- 使用新用户帐户首次登录后,在Windows创建配置文件时,您将看到“正在创建桌面”以及类似的内容。请注意,应在新位置创建新的配置文件。
- 登录后,尝试关闭尽可能多的应用程序。这样可以防止大多数文件被锁定,从而使您无法复制它们。
- 将整个原始用户配置文件文件夹从原始位置复制到新位置(例如,将C:\ Users *复制到D:\ Users)。(复制开始后,请参阅下一步)。
- 在此复制过程中,有几件事要注意。有成千上万的.TMP文件被锁定并且无法复制。我只是跳过了这些文件。我按住Alt-S可以看到所有跳过的文件,并确保只有.TMP文件被跳过。是的,这花了一些时间,但是至少我有信心复制了所有文件。使用命令提示符或powershell可以使此过程更容易。
- 如果您遇到一些无法复制的文件,则可以运行procexp.exe,它是sysinternals提供的文件。然后执行查找句柄并搜索文件名的一部分。procexp会告诉您哪些程序正在锁定文件。但是,只要您关闭了尽可能多的程序,就不会发生这种情况。
- 查找并下载将在注册表上执行“搜索并替换”的程序。我不会提出任何建议,因为我没有找到一个能完美运行的程序。我最终下载了一些不同的免费软件应用程序并使用了所有这些软件。
- 使用注册表搜索和替换程序,搜索原始的用户配置文件文件夹,并将其替换为新的用户配置文件文件夹(例如,搜索“ C:\ Users”,然后替换为“ D:\ Users”。我使用的应用程序只会更改值,而不会更改键名,但是,需要更改的键都与MuiCache有关,我不知道这些键是否真的需要更新。
- 登出。使用同一用户重新登录。重复步骤14,直到没有剩余可替换的东西为止。此步骤的原因是在注销时,某些程序似乎使用旧的用户配置文件路径来更新注册表。
- 运行regedit.exe并搜索原始用户配置文件路径,并确保该路径不存在。进行此步骤的原因是因为(如步骤13中所述),我不信任我使用的任何注册表搜索和替换程序。我最终需要手动更新大约十二个键和值,因为搜索和替换遗漏了它们。
- 为了可以轻松找到不使用注册表和硬编码配置文件路径的程序,请重命名原始配置文件文件夹(例如,将C:\ Users重命名为C:\〜Users)。
- 登出。以通常的用户身份重新登录。除使用“硬编码”用户配置文件位置的程序外,其他所有内容均应正常运行。
- 有两种简单的方法可用于查找使用“硬编码”配置文件位置并且仍在寻找原始用户配置文件路径的程序。您可以使用上面提到的procexp.exe技巧并在原始配置文件位置中搜索句柄。您还可以监视原始配置文件的位置,以查看是否创建了任何新文件夹或文件。例如,就我而言,FolderShare在目录C:\ Users \ MyUsername \ AppData \ Local \ FolderShare中创建了一些文件夹和文件。因此,我更新了FolderShare设置以指向其他路径,然后删除了C:\ Users目录(请注意,C:\〜Users仍作为备份存在)。
- 由于您现在确信所有数据都已移动(右?????),因此可以删除原始用户配置文件位置(例如C:\〜Users)的备份。
鉴于Microsoft使得更改特殊文件夹的位置变得如此容易,而更改整个用户文件夹结构的位置也变得如此困难,我强烈建议您采用简单的方法。
这是正确的过程
我执行了Jimmie指令,并且几乎要工作了。但是,我的IE有一个奇怪的问题,我无法下载文件。我找到了解决我的下载问题的解决方案,并记录在超级用户上:
在安装过程中使用无人值守脚本“自动”移动C:\ Users的一些资源。
Microsoft的知识库中有一些有关移动特殊文件夹的问题,这些信息可能对通读很有用。
对于无人参与脚本本身,有一个名为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和设置之类的连接点,这些连接点指向您需要手动修复的旧位置(如果可能))。
"C:\users"
是一个与"C:\Documents and Settings"
Windows XP / 2000 / NT 等效的系统文件夹,因此,即使不是无法移动,也确实很难。有多种方法可以解决此问题,方法是通过TweakUI或一些类似的技巧(而不是父文件夹)移动子文件夹,而不是使用父文件夹,有关此问题的文章很多,请参见此处:
http://support.microsoft.com/kb/236621
http://support.microsoft.com/default.aspx?scid=kb;zh-CN;314843
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/
其中大部分是从他人那里复制的,然后由现任作家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(NOT xcopy!)将c:\ Users复制到d:\ Users,然后删除旧的c:\ Users,然后从c:\ Users到D:\ Users建立符号链接。请注意,您必须按顺序执行这些操作,并且在执行此操作之前,您必须没有ad:\ Users目录。
注意:在系统恢复命令提示符窗口中,驱动器与退出恢复模式后的驱动器不同!因此,请调整以下命令以了解驱动器如何处于恢复模式,然后稍后再进行更正。
我用过:robocopy / mir / xj E:\ Users D:\ Users
要将/ Users从Windows / SSD移至HDD。/ mir告诉robocopy镜像目录,这将复制所有文件和权限。/ xj非常重要,这告诉robocopy不要遵循连接点。如果您忘记了这一点,将会遇到很多麻烦。确保没有文件复制失败(FAILED列= 0)。
然后,必须先从Windows / SSD(c :)驱动器中删除旧的“用户文件夹”,然后才能创建符号链接:我用过:rmdir / S / QE:\ Users
创建一个指向新的Users文件夹的NTFS Junction /符号链接:
我用过:mklink / JE:\ Users D:\ Users
使用/ J开关创建一个硬符号链接的结点。(如果使用/ D开关,则还必须编辑注册表,因为它不是硬链接。)使用/ J,当Windows查找C:\ Users目录时,它将找到它!但是它将在HDD而不是SSD上。整rick
要查看所创建内容的证明,仍在命令提示符窗口中,进入实际的Windows / SSD并执行“ dir”命令,您将看到:“ Users [D:\ Users]”
现在重新启动,您将在HDD上看到/ Users,然后就可以了。无需进一步配置或摆弄。新的用户配置文件以及所有特定于用户的数据都将存储在d:驱动器上。它是可以实现的,而无需在注册表中进行任何混乱,搜索和替换值,也不必以任何方式对新的配置文件进行混乱。完全设定并忘记。
这并不是您真正需要的,但是如果在Windows 7中,则一个很好的替代方法是更改库的位置。通过这种方法,您可以将文档,图片等保存,但不能将所有配置文件保存在D驱动器中。
昨晚我创建了一个可能对您有用的工具:Set Libraries。