“用户状态迁移工具”不仅具备了“文件和设置转移向导”所有的功能性,而且能够帮助管理员全面自定义特定设置,如:针对注册表的特定修改。
USMT仅为管理员而设计,个人用户并不需要使用该工具。此外,使用USMT 需要一台与Windows Server域控制器相连的客户计算机。
使用USMT的好处
通过改善下列各个方面,USMT降低了部署操作系统所需的成本。
- 聘请迁移技术人员所需的成本
- 员工重新设置个性化桌面所耗费的停机时间
- 员工查找丢失工作文件所耗费的停机时间
- 呼叫帮助台以协助员工重新设置个性化桌面所耗费的时间
- 员工在使用新操作系统过程中所耗费的大量时间
- 员工对迁移的满意度
USMT由一组共享的INF文件操控,IT专业人员或Ois可以对这些文件进行修改。在运用USMT执行自动迁移的实际过程
中,IT专业人员往往要对INF文件进行修改,以便更好地应付特定的环境和满足特殊需要。下节将描述相关技术细节,以帮助IT专业人员使用USMT并对
INF文件进行修改。
用户状态迁移工具由两个可执行文件(ScanState.exe和LoadState.exe),以及四个迁移规则信息文件(Migapp.inf、Migsys.inf、Miguser.inf和Sysfiles.inf)构成。
ScanState.exe可执行文件基于Migapp.inf、Migsys.inf、Miguser.inf和
Sysfiles.inf文件中包含的信息,可以搜集用户数据和设置。LoadState.exe可执行文件则将用户状态数据存放到一台以干净安装(不能
是升级安装)方式安装Windows XP Professional的计算机中。这两个文件均可以在Windows
XP安装光盘的“\valueadd\msft\usmt\”目录下的文件夹中找到。
对于其他迁移要求,您可以创建附加的INF文件。在不修改默认设置的前提下,USMT 迁移的文件和设置包括:
- Internet Explorer设置
- Outlook Express的设置和保存
- Outlook的设置和保存
- 拨号连接电话和调制解调器选项
- 辅助选项
- 标准桌面
- 选定的屏幕保护程序
- 字体
- 文件夹选项
- 任务栏设置
- 鼠标和键盘设置
- 声音设置
- 区域设置
- Office设置
- 网络驱动器和打印机
- 我的文档文件夹
- 我的图片文件夹
- 收藏夹
- Cookies文件夹
修改ScanState.exe搜集的用户状态中的各项很容易。程序会指引你保留或删除指定的文件、文件夹、注册表项或注册表子树。关于修改脚本的规则,见文:“修改INF迁移规则文件”。
表1:用户状态迁移工具的应用要求
|
系统类型 | 要求 |
源系统 | Windows 95, Windows 98, Windows NT Workstation 4.0, 或 Windows 2000 Professional.
可访问中间存储介质 |
中间存储介质 | 存储需要迁移的数据(对于一般的用户,通常有50兆字节的存储空间就足够了。具体需要的存储空间依情况而定。) |
目标系统 | Windows XP Professional
可访问中间存储介质
有足够的硬盘空间接收用户状态数据 |
使用USMT
最简单的办法是,采用默认的迁移文件--INF文件(Sysfiles.inf)执行迁移。但通常,管理员必须创建一个脚本,用于在客户工作站上运行。脚本的创建步骤如下:
- 在客户工作站上运行ScanState.exe文件,将用户状态数据复制到一个中间存储介质上。你可以向各用户发送该脚本的快捷方式,以提醒他们在参加晚会前运行该程序。你也可以执行脚本的自动部署或按预定的时间表来进行;
- 格式化硬盘,并安装Windows XP Professional及所需的应用程序。可以使用磁盘映像软件自动完成整个过程;
- 运行LoadState.exe文件,同时客户工作站上的本地管理员开始保存用户设置。(这个过程可以由本地管理员设为计划任务来执行。)
当用户再次登录系统时,他们最后的用户状态就被重新设置了。
如果要修改Sysfiles.inf文件中的默认参数,遵照下列步骤:
- 确认要迁移的应用程序的设置;
- 确认要迁移的文件类型、文件夹或指定的文件;
- 对这些设置和文件进行定位,并为它们创建一个迁移规则文件(扩展名为INF);
- 运行ScanState.exe文件,将用户状态数据复制到一个中间存储介质上。你可以向各用户发送该脚本的快捷方式,以提醒他们在参加晚会前运行该程序。你也可以执行脚本的自动部署或按预定的时间表来完成;
- 格式化硬盘,并安装Windows XP Professional及所需的应用程序。可以使用磁盘映像软件自动完成整个过程;
- 运行LoadState.exe文件,同时客户工作站上的本地管理员开始保存用户设置。(这个过程可以由本地管理员设为计划任务来执行。)当用户再次登录系统时,他们最后的用户状态就被重新设置了。
本节的余下部分将介绍 “用户状态迁移工具”的语法及使用方法。
ScanState.exe可执行文件的语法
本部分介绍ScanState.exe可执行文件的语法及用法。
scanstate [/c /i input.inf]* [/l scanstate.log] [/v verbosity_level] [/f] [/u] [/x] migration_path |
表2:应用ScanState.exe |
标志 | 执行操作 |
/c | 保留过去的“filename_ too_long(文件名过长)”错误,错误记录文件保存在Longfile.log文件中。 |
/i | 指定一个包含定义迁移状态规则的INF文件,可以同时指定多个INF文件。 |
/l | 指定一个文件,用于记录发生的错误。 |
/v | 启用冗长输出,语法为:/v # where # is 1 to 7(1为最小值;7为最大值)。 |
/u | 指定用户设置将被迁移,仅是一个故障诊断变量。 |
/f | 指定文件将被迁移,仅是一个故障诊断变量。 |
/x | 指定没有文件和设置需要迁移。 |
注意:“migration_path(迁移路径)”指能够读取迁移文件的路径。 |
示例:
scanstate \\fileserver\migration\elizabeth /i .\migapp.inf /i .\migsys.inf /I .\miguser.inf /i.\sysfiles.inf /i .\files.inf |
用户设置、系统设置和文件按默认值迁移。“/u”、“/f”和“/x”标志符仅用于故障诊断。你可以指定多个INF迁移规则文件。如果指定的INF文件不止一个,其中必须包含Sysfiles.inf迁移规则文件。
LoadState.exe可执行文件的语法
本部分介绍LoadState.exe可执行文件的语法及用法。
loadstate [/i input.inf]* [/l loadstate.log] [/v #] [/f] [/u] [/x] migration_path |
表3:应用LoadState.exe |
标志 | 执行操作 |
/c | 保留过去的“filename_ too_long(文件名过长)”错误,错误记录文件保存在Longfile.log文件中。 |
/i | 指定一个包含定义迁移状态规则的INF文件,可以同时指定多个INF文件。 |
/l | 指定一个文件,用于记录发生的错误。 |
/v | 启用冗长输出,语法为:/v # where # is 1 to 7(1为最小值;7为最大值)。 |
/x | 指定无任何文件或设置要迁移,仅是一个故障诊断变量。 |
/u | 指定用户设置将被迁移,仅是一个故障诊断变量。 |
/f | 指定文件将被迁移,仅是一个故障诊断变量。 |
注意:“migration_path(迁移路径)”指能够读取迁移文件的路径。 |
示例:
loadstate \\fileserver\migration\elizabeth /i .\miguser.inf |
用户设置、系统设置和文件按默认值迁移。“/u”、“/f”和“/x”标志仅用于故障诊断。你可以指定多个INF迁移规则文件。
本节介绍INF迁移规则文件(包括Migapp.inf、Miguser.inf、Migsys.inf
和Sysfiles.inf)中的规则和语法。只有熟悉脚本和注册表的管理员,才可以尝试修改默认的INF迁移规则文件。完成任何修改后,应对相应的
INF文件进行全面的测试。
特殊文件夹及环境变量支持
INF迁移规则文件支持由CSIDL数值集合定义的特殊文件夹路径替换。只需将CSIDL的名称插入两个百分比符号之间(例
如:“%CSIDL_SYSTi%”或“%CSIDL_PERSONAL%”),USMT就可以对其进行应用。对于其它环境变量,只要用户和管理员的定义
相同,USMT就可以支持。
示例:
%CSIDL_PERSONAL%\*.txt would match C:\Documents and Settings |
附加文件的规则
通过向INF迁移规则文件中的[Copy This
State]语句段里加入名为“CopyFiles”的标志符,就可以将附加的文件和文件夹加入文件的迁移。“CopyFiles”标志符的后面紧随一个
语句段名称。该语句段包含了将迁移到目标计算机的文件和文件夹所在的位置。
示例:
[Copy This State] CopyFiles=Copy Trip Reports [Copy Trip Reports] ; The next line copies the TripRpts folder non-recursing DIR=C:\TripRpts ; The next line copies everything in the TrpRpts folder–recursing ONLY DIR=C:\TripRpts\* ; The next line copies all files on the user's desktop in a folder called TripRpts ; matching the 99*.DOC wildcard search. %CSIDL_DESKTOP%\TripRpts\99*.DOC |
排除文件的规则
如果你不想迁移某些文件或文件夹,在INF迁移规则文件中的[Copy This
State]语句段里加入名为“DelFiles”的标志符,就可以将这些文件和文件夹排除出文件的迁移。“DelFiles”
标志的后面紧随一个语句段名称。该语句段包含了不想迁移到目标计算机的文件和文件夹所在的位置。原先是ScanState.exe默认复制的指定项,现在
就不会被复制了。注意:此处指定的文件和文件夹,不管是在原计算机还是在目标计算机上,都不会被真正删除。
示例:
[Copy This State] DelFiles=Trip Reports DelFiles [Trip Reports DelFiles] ; We don't want to migrate the July '99 trip report %CSIDL_DEKSTOP%\TripRpts\9907*.DOC |
写入而非读入不同的位置
通常,迁移的文件会被转移到管理更完善的桌面环境。因此,管理员都希望把用户的文档转移到“我的文档”中(语句
为:csidl_personal)。这个过程可以通过将目标计算机上的目的文件夹添加到“CopyFiles”语句段的末尾处来完成。新文件夹就成为迁
移文件的根目录。你也可以重新为目的文件夹设置根目录,把迁移文件复制到“我的文档”以外的文件夹。你可以对文件夹的位置直接命名(如命
为:C:\DA
TA)。更多有关移动文件的信息,见下文:“注册表的移动和复制规则”。
示例:
[Copy This State] CopyFiles=Copy Trip Reports [Copy Trip Reports] ; The next line copies the TripRpts folder DIR=C:\TripRpts, %CSIDL_PERSONAL% ; The next line copies everything in the TrpRpts folder DIR=C:\TripRpts\*, %CSIDL_PERSONAL% ; The next line copies all files on the user's desktop in a folder called ; TripRpts ; matching the 99*.DOC wildcard search. %CSIDL_DESKTOP%\TripRpts\99*.DOC, %CSIDL_PERSONAL% |
在上方的示例中,所有的文件都被移动到由“CSIDL_PERSONAL”语句所指定的、该用户的“我的文档”文件夹中。而“C:\TripRpts”文件夹在“我的文档”文件夹下重新定位(位置为:C:\Documents and Settings\\My Documents\TripRpts)。
通配符
INF迁移规则文件支持Microsoft(MSDOS)风格的、针对一部分扩展名的通配符的搜索。例如,星号(*)与零个或多个字符
相匹配,问号(?)与单个字符相匹配。如果原字符串中包含反斜杠,那么符合规范的目标文件的路径名就与原字符串相匹配。否则,相匹配的部分只包括文件名和
扩展名。原字符串中允许存在多个通配符。如果原字符串仅要与一个目录相匹配,需要在该行语句的起始处加入“dir=tag”语句。
例如:
- “C:\TripRpts\2000\August.*”与“c:\TripRpts\2000\august.doc”及“ c:\TripRpts\2000\august.xls”相匹配;
- 与“c:\TripRpts\august.doc”不相匹配;
- “August.*” 与“c:\TripRpts\2000\august.doc”、“c:\TripRpts\2000\august.txt”及“c:\TripRpts\august.doc”相匹配;
- “*.doc”与“c:\TripRpts\2000\august.doc”及“c:\TripRpts\august.doc”相匹配;
- “c:\*\2000\*.*”与“c:\TripRpts\2000\august.doc”、“c:\TripRpts\2000\august.txt”及“c:\ExpenseRpts\2000\morefiles.ext”相匹配;
- “c:\TripRpts”与取名为“c:\TripRpts”的文件相匹配,而与取名为“c:\TripRpts”的目录不相匹配;
- “dir=c:\TripRpts”与名为“TripRpts”的目录相匹配,而与名为“TripRpts”的文件不相匹配;
- 使用“*.doc”字符串获取系统中所有以DOC为扩展名的文件;
- 使用“c:\.doc”或“c:\*\*.doc”字符串获取驱动器C盘中所有以DOC为扩展名的文件。
Settings\%username%\My Documents\august.txt |
注册表附加规则
通过向INF迁移规则文件中的[Copy This
State]语句段里加入名为“AddReg”的标志符,就可以将附加的注册表项或整个注册表子树加入文件的迁移。“AddReg”标志符后面紧随一个语
句段名称。该语句段包含将迁移到目的计算机的注册表项和子树所在的位置。这些注册表项将覆盖目的计算机上与之相对应的各项。
示例:
[Copy This State] AddReg=SpaceCadet AddReg [SpaceCadet AddReg] HKR\Software\Microsoft\Plus!\Pinball\ SpaceCadet\*= |
排除注册表的规则
如果不想迁移某些注册表项,可以在INF迁移规则文件中的[Copy This
State]语句段里加入名为“DelReg”的标志符,将这些注册表项排除出文件的迁移。“DelReg”标志的后面紧随一个语句段名称。该语句段包含
不想迁移到目的计算机的注册表项所在的位置。
注意:此处指定的注册表项,在目的计算机上,是不会被真正删除的。 示例:
[Copy This State] DelReg=SpaceCadet DelReg [SpaceCadet DelReg] HKR\Software\Microsoft\Plus!\Pinball\ SpaceCadet [Table Exe]= |
注册表移动及复制规则
通常,迁移的信息中必定包含某个注册表项。所以,如果是从Windows 95或Windows 98升级到Windows XP
Professional的操作系统,就需要对注册表中大多数的子键和项进行修改、移动、删除或添加。这个过程可以通过在INF迁移规则文件中的
[Copy This
State]语句段里加入名为“RenReg”的标志来实现。“RenReg”标志后面紧随一个语句段名称。该语句段包含要迁移到目的计算机的注册表项所
在的位置,以及需要重命名或移动的注册表项所在的位置。 示例:
[Copy This State] RenReg= Outlook98&97 RenReg [Outlook98&97 RenReg] HKR\Software\Microsoft\Windows
Messaging Subsystem\Profiles\*= \ HKR\Software\Microsoft\Windows
NT\CurrentVersion\Windows Messaging Subsystem\Profiles |
注意:如果INF迁移规则文件中的语句行以反斜杠(\)结尾,则表示该语句行接下行。
如果某个注册表项的值所指向的文件也需要迁移,那么在[Copy This
State]语句段里加入名为“RegFile”的标志,就可以对该注册表项的值所指向的文件进行复制。“RegFile”
标志符后面紧随一个语句段名称。该语句段包含相关注册表项所在的位置,而列出的每个注册表项都必须包含一个文件名。所有列出的文件名都将被复制到目的计算
机。在目的计算机中,各项的文件路径均设为文件的实际位置(除非文件被移动过)。一个注册表项可以同时列于“RenReg”和“RegFile”语句段
里。“RegFile”语句也可用于移动文件。
示例:
[Copy This State] RegFile=Desktop RegFile [Desktop RegFile] HKR\Control Panel\Desktop [Wallpaper]= ; This next line would move the wallpaper image to My Documents. ; You would NOT have both of these in the same file. HKR\Control Panel\Desktop [Wallpaper]=, %CSIDL_PERSONAL% |
优先规则
当同一个文件或文件夹应用了多条迁移规则,就会有一个算法用来查找最佳的匹配规则。通常,对文件或文件夹描述最贴切的规则将赢得优先
权。如果同时有两个规则对于文件或文件夹的描述同样准确,则“附加(INCLUDE)”规则优先。查找最佳匹配规则的范围包括全称路径和文件名。即使匹配
程度完全相同的两个规则,也经常出现意想不到的结果。注册表迁移规则的应用次序如下:
- “DelReg”语句可以指定给ScanState.exe或LoadState.exe;
- “AddReg”、“RenReg”和“RegFile”语句可以指定给ScanState.exe和LoadState.exe中的任何一个。但是,如果指定给了LoadState.exe而不是ScanState.exe,就不会对指定的注册表项进行复制。而对于“RegFile”语句,则不对所指定的文件进行复制;
- “DelReg”语句中列出的任何项都不会被复制到目的计算机;
- “RenReg” 语句中列出的任何项都将被重命名。如果同一个项多次出现,则只有一个重命名规则会被应用;
- “RegFile”语句中列出的任何项都必须含有指定值的路径。而同一项出现次数的多少没有区别。
- “AddReg”语句中列出的任何项将覆盖目的计算机上相应的各项。而同一项出现次数的多少没有区别。
- 如果目的计算机上已有某个项,该项不会被覆盖(除非将其列在“AddReg”语句中)。
每个注册表项到可以对应“RenReg”、“RegFile”和“AddReg”规则中的任何一条。因此,所有指定的规则都可
以同时应用。但是,同时应用的规则必须具备相同的路径。例如,你可以对“HKEY_LOCAL_MACHINE\Software\Microsoft
\Exchange\*
subkey”路径分别应用一条“AddReg”和一条“RenReg”规则。如果应用的“AddReg”规则指向的路径是
“HKEY_LOCAL_MACHINE\Software\Microsoft\Exchange\*
subkey”,而“RenReg”规则指向的路径是“HKEY_LOCAL_MACHINE\Software\Microsoft\Exchange
\Client subkey”,那么“RenReg”规则将获得优先权。原因是其描述的路径更具体。
评论