跟我们一起
玩转路由器

再谈桌面虚拟化环境中的默认配置文件与输入法

今天我将为大家详细介绍在创建虚拟桌面时如何设置默认输入法以及用户配置文件的相关方法。

在创建虚拟桌面或虚拟应用时,我们希望所有基于标准用户创建的新用户都具有相同的输入法设置。然而,有时新用户可能会缺少输入法,或者仍然保留微软拼音输入法和微软智能ABC输入法。接下来,我们将分析微软定义的默认配置文件以及如何手动设置输入法。

制作标准配置文件

方法一:首先,我们在标准模板中安装并调试好所有软件,完成系统优化设置。然后使用此用户并通过sysprep工具加上copyprofile参数,将默认用户的配置文件替换为此用户的配置文件。制作完成后,精简此配置文件,尽量将其压缩到3M以内。

方法二:使用一个本地管理员用户在标准模板中安装并调试好所有软件,完成系统优化设置。接着,使用另一个管理员用户登录到此系统,使用Windows Enabler工具导出原来安装调试软件的用户的配置文件,导出时赋予everyone完全控制权限。导出后,将C:\USERS\Default重命名,然后将导出的配置文件复制到C:\USERS并重命名为Default,将配置文件精简到3M以内。

采用第一种方法时,可能会出现新用户的配置文件与预期的输入法不符的情况。此时,我们需要考虑修改配置文件下的ntuser.dat文件,关于ntuser.dat的作用,我们将在下文详细说明。

采用第二种方法时,基于制作的配置文件生成的新用户的输入法设置通常不会有问题,但在XenDesktop结合UPM的情况下,可能会出现用户配置文件无法上传到漫游路径的问题。具体表现为UPM的LOG中会报出“Logon/Logoff process failed”的错误。

因此,如果是在虚拟桌面+Citrix UPM或者XenApp+UPM的环境下,我们建议使用第一种方法生成默认配置文件。如果是桌面环境或XenApp环境使用的是微软漫游配置文件或微软强制配置文件,我们推荐使用第二种方法。

第二种方法无法使用UPM的原因是在使用Windows Enabler的过程中,自动筛选掉了AppData\Local\和AppData\LocalLow,而UPM有时会用到AppData\Local\Microsoft\usrclass.dat文件,关于usrclass.dat文件我们将在下文详细阐述。

注册表文件

我们知道,Windows将用户的大部分设置都存放在了注册表中,当前登录用户的注册表位于HKEY_CURRENT_USER这个大的注册表项下。

用户的DLL文件注册、系统配置、个性化设置以及输入法设置都存放在这个注册表项中。每个用户的HKCU注册表配置项都存放在各自的用户目录下,Windows NT5.0及之前版本存放在“C:\Documents and Settings\%username%”下,Windows NT 5.0及之后版本存放在C:\Users下。存放的文件名为ntuser.dat和usrclass.dat。ntuser.dat用来存放用户的HKCU注册表项,而usrclass.dat主要用来存放用户的COM注册表配置项。在做漫游配置文件时,默认情况下usrclass.dat不会被漫游到共享路径,只有ntuser.dat会被漫游到共享路径。

经过多次尝试与分析,我发现Citrix UPM会将一些注册表项写入到usrclass.dat文件中。我们在使用第二种方法制作默认配置文件时,由于会直接清除整个AppData\Local目录,因此usrclass.dat文件也会被清除掉。因此,在制作漫游配置文件时,如果必须使用第二种方法,在制作完成后,可以手动重建AppData\Local目录,并将usrclass.dat文件放入其中,即可正常使用UPM。对于第一种方法,如果新用户的输入法没有按照我们预定义的输入法创建出来,我们可以分析ntuser.dat文件并手动将输入法项写入其中。

关于输入法

Windows定义用户的输入法设置存放在HKCU\Keyboard Layout中,当前使用的输入法存放在HKCU\Keyboard Layout\Preload中,而在Windows PE或Windows预启动时的输入法设置则存放在HKCU\Software\Microsoft\CTF\SortOrder\AssemblyItem中。

打开HKCU\Keyboard Layout\Preload后,我们会看到如下所示:

我们会看到有1、2、3三个注册表键值,并且键值的定义数据是一串数字与字母的组合键值。

此时这三个键值就代表了我们当前用户有3个输入法,1就代表第一个输入法,以此类推,每个输入法后面的键值就代表了该输入法(每个输入法在系统中都有唯一的键值,微软键盘默认为E00000804)。输入法键值的定义在如下位置:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts

使用第一种方法将默认配置文件创建出来后,如果新用户的输入法没有按照预期创建出来,则可以将默认配置文件中的ntuser.dat文件挂载到注册表编辑器中。

挂载方法如下:

1、 打开注册表编辑器,定位到HKEY_USERS,点击“文件”>“加载配置单元”。

2、 选择我们要修改的ntuser.dat文件,点击“打开”。

3、 随便输入一个配置项的名称,点击“确定”。

4、 如下图,我们可以看到我们的文件已经正确挂载。

5、 打开Keyboard Layout\Preload检查输入法的注册表项是否正确。

6、 如果不正确,打开HKLM\System\CurrentControlSet\Control\Keyboard Layouts找到要添加的注册表项的项名称,并记录下来。

7、 如上图,百度输入法的键值是E0200804,只需要将此键值加入到如上的Keyboard Layout\Preload里面即可。

8、 注册表修改完成后,定位到我们挂载的项的位置。

9、 点击“文件”>“卸载配置单元”。

10、 卸载后,在ntuser.dat所在的目录,我们会看到一些临时的log文件,此时将除了ntuser.dat之外的所有文件全部删除即可。

如此,默认配置文件的输入法即配置完毕,使用此配置文件创建一个新用户进行测试即可。

题外话(关于XenApp强制)

如果在XenApp环境中使用微软TS强制配置文件,在优化配置文件时,如果没有应用程序将配置文件写入到AppData文件夹(一般的B/S系统插件都不会写入,如果有应用程序写入到AppData\Roaming,可以将Roaming目录做重定向),可以将除了Ntuser.dat之外的所有目录与文件全部删除,此时可以大大加快XenApp应用程序的启动速度。

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《再谈桌面虚拟化环境中的默认配置文件与输入法》
文章链接:https://www.lu-you.com/settings/25131.html
本站资源来源于互联网整理,若有图片影像侵权,联系邮箱429682998@qq.com删除,谢谢。

评论 抢沙发

登录

找回密码

注册