网上有篇【打造 Windows XP “终极版”】,比较详细的讲了在普通的XP Pro上安装TPC和MCE组件。电脑爱好者也有另一名字的文章引用。但其中一个比较重要的步骤,命令有问题,导致得不到正确的结果。。。
原话是:
……再打开命令提示符,输入%windir%\Microsoft.NET\Framework\v1.0.3705\Copy2Gac.exe /i /a /p :"%Program Files%\Common Files\Microsoft Shared\ink\1.7"(/p后面有一个空格)并回车,显示“Install 36 Assemblies into GAC.”表示操作成功,否则请检查你的步骤及命令是否有误。
这一步是必须做的,否则会导致TPC输入面板无法显示,登录时的屏幕键盘也无法显示,因为这两个组件都依赖netfx 1.0。这个命令就是把两个组件所需的dll注册到netfx1.0(就在命令的后一个路径下,共5个)。但这个命令有问题,导致后面那个路径根本没用上。上述输出结果实际是注册了netfx 1.0目录下的36个dll,这36个文件是没必要再次注册的。。。
针对TPC输入面板和屏幕键盘无法显示的bug,当时的一些文章建议是重打SP2修复,简直小题大做。。。本来上面这个命令就是用来修这个bug的,但命令写错居然没人发现。。。
错误如下:
- /p后面直接加冒号即可,不应该再加空格。这个参数的意思是注册指定路径下的文件,否则默认注册netfx目录下的文件。
- 后一个路径,环境变量%Program Files%是错的,%ProgramFiles%才是系统自带的环境变量。
- 由于路径带有空格,需用引号引起来,在这种情况下给参数赋值时,引号充当了转义符,导致参数得到的路径不对,1.7中的7被忽略了。要正确发挥引号的作用,必须在参数引用路径的后一个引号前添加转义符^。
所以正确的命令是:%windir%\Microsoft.NET\Framework\v1.0.3705\Copy2Gac.exe /i /a /p:"%ProgramFiles%\Common Files\Microsoft Shared\ink\1.7^"
执行结果是安装了5个程序集,正好对应后面那个路径下的5个dll。重启可以发现登录时的屏幕键盘显示出来了,点任务栏中的输入面板按钮也可以弹出输入面板了。。。
电脑爱好者那篇文章虽然说提示安装了5个程序集(正确结果),但上述命令中也漏了^这个转义符,所以实际上是得不到这个结果的。。。
另外,这些文章中提到:由于srv03既没有发布tpc也没有发布mce,所以上户口时添加的Installed都必须是字符串值。实际上,对03而言,也只有vl检查授权比较严格,rtl和oem添加dword类型的installed是没有任何问题的!当然,还有一步很重要,就是mce05务必装上更新汇总2(900325)(nt5.2可以用xp兼容模式安装),否则mce一大堆233
请看运行结果对比: