迁移及配置 Windows 7 的用户账号 UserProfile 默认目录位置

 

转载自:

http://moonwulk.blogspot.com/2010/06/windows-7-userprofile.html

在实测多种不同方法后综合一个可行而且颇为满意(起码没有踫到死当或缺陷), 过程快捷顺利, 只要注意权限问题, 加上一些手动小修改罢了。

认识 Windows 7 系统的本机账号目录 UserProfile 位置架构如下:

  • 账号默认目录是 C:\Users\
  • 共享账号目录是 C:\Users\Public\
  • 默认配置账号目录(隐藏)是 C:\Users\Default\
  • 个人用户账号目录是 C:\Users\%用户名称%\


网上流传众多方法也有不小误判或缺陷:

  • 微软的轻松传输(Easy Transfer)当然就不能轻松地将用户账号目录在系统 C:\Users\ 目录迁移到其他硬盘机, 也不用妄想啊
  • 将用户账号目录迁移后利用 mklink 指令以 junction point(NTFS) 的连结方式使用, 此方法有不良的严重后果(原因不明, 可能是 junction 的权限问题), 在登入后使用到 Windows 某些个人配置功能时(例如: 桌面背景..等等)会令整个 GUI 接口死当或超缓慢, 部分软件(例如: Outlook)在设定后使用时出状态
  • 将用户账号目录在 File Explorer 接口中每一个都更改 Location 位置, 实在太过手动(烦死啊), 而且用户账号子目录的 AppData 账号配置数据(及临时文件)都仍然使用 C: 系统碟, 此方法只是适合没有(或不能使用)系统管理员权限的个人环境临时的简易方案而已
  • 将系统机码 HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CurrentVersion\ProfileList 的 Default, Public, ProfileDirectory 都修改为其他硬盘机位置, 此方法是可行的亦是针对本机的完全修改, 不过...已经存在 C: 的系统管理员账号还是需要手动迁移及修改系统机码


迁移个人用户账号目录 C:\Users\%用户名称%\ 到其他硬盘机无论任何情况必需先做好系统完全备份!!
实测应用安装及格化准备好的硬盘(及分割区), 如图 e: 硬盘

实测配置 Windows 7 的用户账号 UserProfile 目录位置实作步骤:

1. 登入系统管理员账号
2. 修改系统机码将新增用户账号目录指向 e: 硬盘, 以 系统管理员身分执行 注册表编辑器(regedit):
寻找机码 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
如果需要将所有用户账号目录(包括默认配置、共享及新增账号)全部迁移到 e: 硬盘的话, 修改三个预设机码如下:
Default 预设由 %SystemDrive%\Users\Default 修改为 e:\Default
ProfileDirectory 预设由 %SystemDrive%\Users 修改为 e:\
Public 预设由 %SystemDrive%\Users\Public 修改为 e:\Public
如果只需要新增账号迁移到 e: 硬盘的话, 只需要修改"一个"预设机码如下:
ProfileDirectory 预设由 %SystemDrive%\Users 修改为 e:\

实测迁移 Windows 7 的用户账号 UserProfile 目录位置实作步骤:

1. 登入 系统管理员 账号
2. 以 系统管理员身分 执行 cmd 命令提示字符(Command Prompt)
3. 复制用户账号目录(例如: Doggie账号)到指定位置(e:)硬盘, 在 命令提示字符 内 执行:

robocopy c:\Users\ e:\ /e /copyall /xj /xf c:\Users\desktop.ini /xd "Default" "Public" "%其他用户账号%"

以上的复制方法以排除 exclude(/xd) %其他用户账号目录% 及不迁移的 Default 及 Public 账号目录
好处是无需烦恼地手动修改目录读写权限, 与原来的账号目录权限一模一样, 而 /xj 是不复制 junction point 连结(否则无限复制 loop, 必需手动再建立账号目录内 16个 junction)
4. 在"已迁移"的 e: 硬盘用户账号目录内再建立 16个 junction(兼容旧软件的目录架构)
查看旧的 junction 目录如下(例如: Doggie 账号):

dir c:\Users\Doggie /al /s


手动再建立 16个 junction 到 e: 硬盘(例如: Doggie 账号), 以 系统管理员身分 执行 cmd 命令提示字符(Command Prompt)
在 命令提示字符 内执行:

e:
cd Doggie

mklink /j "Application Data" "AppData\Roaming"
mklink /j "Cookies "AppData\Roaming\Microsoft\Windows\Cookies"
mklink /j "Local Settings" "AppData\Local"
mklink /j "My Documents" "Documents"
mklink /j "NetHood" "AppData\Roaming\Microsoft\Windows\Network Shortcuts"
mklink /j "PrintHood" "AppData\Roaming\Microsoft\Windows\Printer Shortcuts"
mklink /j "Recent" "AppData\Roaming\Microsoft\Windows\Recent"
mklink /j "SendTo" "AppData\Roaming\Microsoft\Windows\SendTo"
mklink /j "Start Menu" "AppData\Roaming\Microsoft\Windows\Start Menu"
mklink /j "Templates" "AppData\Roaming\Microsoft\Windows\Templates"

mklink /j "AppData\Local\Application Data" "AppData\Local"
mklink /j "AppData\Local\History" "AppData\Local\Microsoft\Windows\History"
mklink /j "AppData\Local\Temporary Internet Files" "AppData\Local\Microsoft\Windows\Temporary Internet Files"

mklink /j "Documents\My Music" "Music"
mklink /j "Documents\My Pictures" "Pictures"
mklink /j "Documents\My Videos" "Videos"



5. 修改系统机码将用户账号目录指向 e: 硬盘, 以 系统管理员身分 执行注册表编辑器(regedit):
展开机码 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
在其中参找一条长机码包含有用户账号名称, 将其 ProfileImagePath 机码由 c:\Users\%用户账号名称% 改为 e:\%用户账号名称%(如图)
修改后实时生效

备注:

1. 如果要迁移的账号目录是登入使用中的系统管理员的话, 则必需建立及登入使用另一个临时系统管理员账号, 否则登入使用中的部分档案文件因为系统使用中而不能完全复制成功。
2. 在 系统管理员身分 使用 xcopy 或 File Explorer 中复制账号目录贴上的话, 账号目录权限会错误, 导致用户部分功能错误及保密读写权限缺失
例如: 所有默认图示失踪(如图) 错误的账号目录权限(如图), 任何用户均可擦写档案文件 正确的账号目录权限

最后个人建议:

如果要迁移用户账号目录(包括其一切档案文件数据)的话, 迁移后不要立即删除旧帐号目录, 视不同情况酌情保留旧目录数据一段时间, 紧急需要时还可以用来拯救状态。

更正:

mklink -j 改正为 mklink /j 指令。

 

你可能感兴趣的:(迁移及配置 Windows 7 的用户账号 UserProfile 默认目录位置)