欢迎光临 Enjoy IT (ITECN.NET) 登录 | 注册 | 帮助

Windows Vista IE下紫光拼音的终极解决办法

作者 盆盆
难度 Level200
链接 http://blogs.itecn.net/blogs/winvista/archive/2006/10/08/3777.aspx
介绍
Windows Vista文章宝库,网址http://vista.itecn.net,旨在研究和推广Windows Vista技术,由多位Microsoft MVP和其他技术爱好者组成。大部分成员接受过微软中国组织的Windows Vista讲师培训,其中四位MVP还在新加坡接受过微软Windows Vista部门的专门培训。

在拙作Windows Vista IE保护模式深度剖析》中曾经提到紫光拼音无法在IE浏览器里正常调用,并且还给出一个方法,可以手动创建NTFS的符号链接,以欺骗紫光拼音。

在实际的使用过程中,发现这个方法在大多数时候可以正常工作,但是如果在打开IE之前,已经调用过紫光拼音,则可能无法在IE浏览器里顺利启动紫光拼音。

在笔者的那篇文章里还提到,Windows Vista没有自带的工具,无法查看和设置文件夹的完整性级别。

果真是这样吗?

笔者有幸在Tech.Ed北京听了IE保护模式的负责人Robert Gu的一堂课,了解到Windows Vista其实自带了一款命令行工具Icacls.exe,可以用它来查看和设置指定文件夹的完整性级别。

提示

Robert Gu,微软总部的首席开发主管,目前负责IE 7安全的开发。他是EFS算法的发明者,曾主导EFSPKI的开发,是华人中的骄傲。

现在我们可以大胆猜测,既然有现成的Icacls.exe可供使用,则完全可以用它来把紫光拼音的工作目录“%AppData%\Unispim”的完整性级别设置为“低级”,这样无论是IE进程(低级)和外部的进程(中级),都可以访问该工作目录,紫光拼音就可以工作正常。

说做就做,接下来就以Windows Vista RC2 Build 5744为例进行介绍(需要注意的是,该Icacls命令在RC1下无法正常工作)

1.首先需要给当前的帐户增加“修改一个对象标签”特权,其内部名称为SeRelabelPrivilege。方法是运行secpol.msc,打开“本地安全策略”管理单元,在左侧控制台树中展开本地策略、用户权限分配,在右侧详细窗格里定位到“修改一个对象标签”策略项,双击该策略项,把当前的登录帐户添加进去,如附图所示。


2.注销重新登录,然后以管理员权限运行命令提示符,在命令提示符下输入以下命令:

Whoami/all |find /i "SeRelabelPrivilege"

结果如附图所示,这表示当前登录用户已经拥有SeRelabelPrivilege特权,只是状态为禁用。

3.然后运行以下命令:

Icacls.exe %AppData%\Unispim /SetIntegrityLevel Level:L

命令结果如附图所示,表示成功完成。

4.可以继续运行以下命令,查看%AppData%\Unispim目录的完整性级别:

Icacls.exe %AppData%\Unispim

      命令结果如附图所示,表示该目录的强制完整性级别为“低”。

经过这样处理以后,就可以正常在IE浏览器里启用紫光拼音了,而再也不需要针对特定网站禁用IE保护模式。

如果偶尔发现无法在IE里启动紫光拼音,这时候不要着急,只需临时关闭其他启用输入法的程序,一般是OutlookWordNotepad等编辑程序,然后就可以在IE里正常使用紫光拼音。

接下来,还有两个问题:

1.细心的读者朋友发现用Whoami/all命令查看当前用户的访问令牌时,发现SeRelabelPrivilege特权是禁用的。而这个特权正是用来设置对象的完整性级别,那么这时候为什么Icacls命令可以成功运行?

原来当运行Icacls命令设置目录的完整性级别时,该Icacls进程的访问令牌会自动启用SeRelabelPrivilege特权,以便命令能够顺利完成。

2.由于Windows Vista RC1下的Icacls命令不能正常工作,这里可以下载一个第三方的命令行工具chml.exe,该工具是由Mark Minasi制作的(Mastering Windows Server 2003》一书的主要作者),该工具的下载地址:

http://www.minasi.com/vista/chml.exe

      注意 chml的使用语法和Icacls不同,具体使用方法请参考其联机帮助信息!

提示

本文部分参考自Mark Minasi的文章:

http://www.minasi.com/vista/chml.htm



已发表 2006年10月8日 20:51 作者 ahpeng

评论通知

如果您想在帖子更新时接到邮件通知,请先登录。这里

订阅帖子评论使用 RSS

评论

2006年10月9日 16:32 by yangyaoting

# re: Windows Vista下紫光拼音的终极解决办法

好深懊,好多原理都不懂!!
不知道还要多长时间才能赶的上各位前辈~~~
2006年10月11日 9:28 by ahpeng

# re: Windows Vista IE下紫光拼音的终极解决办法

您可以阅读以下的文章,了解一些相关的背景知识:
http://blogs.itecn.net/blogs/blogs/winvista/archive/2006/07/23/IELowRights.aspx

# 安全功能,只能吃力不讨好?

现在看来,安全特性是一个“吃力不讨好”的主儿,UAC、IE保护模式等安全功能,莫不如此。 安全功能的特点注定它只能是幕后英雄,就算设计的再好,发挥的再极致,最高境界就是“让用户感觉不到它的存在”。一旦用户感觉到它的存在,它的末日就来临了。...
2006年11月5日 15:30 by SenSen

# 求 Windows Vista IE下拼音加加的解决方案

很高兴看到您这篇文章,看了几遍,学到了很多

作为一名拼音加加的老用户,为IE7下拼音加加的不正常很苦恼。我尝试仿照您文章中的做法,但并未成功。

如果您有时间,很期待能获得您的帮助。

另,FileMonNT 在我的 Vista RC2 下很容易崩溃。
2006年11月6日 13:56 by Windows Vista技术博客

# 如果您无法在Windows Vista下正常使用输入法,那么请进来看看:)

很多朋友抱怨在Windows Vista下无法正常使用输入法,例如无法正常使用五笔输入,无法使用紫光拼音,无法使用拼音加加等。尤其是在IE浏览器里运行的时候。这时候一般是由于IE保护模式的作用,由于IE保护模式依赖于UAC、UIPI和MIC的作用,所以大概可以认为是UAC、UIPI或者MIC的安全功能导致这些输入法出现问题。1....
2006年11月6日 13:58 by Windows Vista技术博客

# 如果您无法在Windows Vista下正常使用输入法,那么请进来看看:)

很多朋友抱怨在Windows Vista下无法正常使用输入法,例如无法正常使用五笔输入,无法使用紫光拼音,无法使用拼音加加等。尤其是在IE浏览器里运行的时候。这时候一般是由于IE保护模式的作用,由于IE保护模式依赖于UAC、UIPI和MIC的作用,所以大概可以认为是UAC、UIPI或者MIC的安全功能导致这些输入法出现问题。1....
2007年2月25日 23:58 by 盆盆的博客

# 用户帐户控制、PsExec和安全边界

文章原著 Mark Russinovich 翻译作者 盆盆 [ITECN博客站长] http://blogs.itecn.net/blogs/ahpeng 盆盆导读 本文由Mark Russinovich(微软院士)所著,由盆盆所翻译,为了加深大家对本文的印象,盆盆还加注了自己对本文的理解和注释。Mark

2007年3月8日 10:39 by 盆盆的博客

# 哪些输入法不能在Windows Vista IE 7下正常工作?

大家知道,Windows Vista的IE 7引入了一个革命性的安全特性-IE保护模式。在提供极大安全性的同时,微软还花费了极大的精力提升其兼容性,例如加入了IEUser和IEAdmin两个代理进程(Broker),并且单独为IE保护模式提供虚拟重定向的功能。这些兼容性措施能够解决大多数IE加载项的兼容性问题。

2007年3月11日 21:42 by huxiqi

# re: Windows Vista IE下紫光拼音的终极解决办法

登录帐户添不进去啊?

2007年3月21日 10:52 by 盆盆的博客

# 严正谴责PCHome抄袭盆盆的原创技术文章

PCHome抄袭盆盆的一篇技术文章《Vista下紫光拼音无法使用的解决办法》

2007年3月22日 11:47 by qhzf

# re: Windows Vista IE下紫光拼音的终极解决办法

我根据盆盆的办法试验,发现有这么一个问题没有考虑到。

我的用户名是两个单词,中间有一个空格。

因为这个原因,运行到步骤3的时候,就会出现找不到文件的提示,导致无法继续下去。

不知道是否有办法解决。

2007年3月22日 20:51 by ahpeng

# re: Windows Vista IE下紫光拼音的终极解决办法

To qhzf:非常常规的解决方法,在路径名上加上双引号。例如把命令改为:

Icacls.exe "%AppData%\Unispim" /SetIntegrityLevel Level:L

any way,感谢您的提醒。

2007年3月30日 16:43 by Jan

# re: Windows Vista IE下紫光拼音的终极解决办法

刚设置完是没有问题。。。但是机器重启以后问题又出现了。

2007年4月4日 22:30 by nll

# re: Windows Vista IE下紫光拼音的终极解决办法

佩服!厉害!高人呀!

2007年4月14日 15:11 by 星辉辅弼

# re: Windows Vista IE下紫光拼音的终极解决办法

为什么我的Vista系统运行不了secpol.msc命令啊,提示找不到文件。

2007年4月17日 16:59 by EVIL

# re: Windows Vista IE下紫光拼音的终极解决办法

刚设置完是没有问题。。。但是机器重启以后问题又出现了。

2007年6月7日 13:13 by joey

# re: Windows Vista IE下紫光拼音的终极解决办法

好像可以用了,可是重启之后上网速度暴慢,这是为什么?

2007年6月21日 8:33 by okuc

# re: Windows Vista IE下紫光拼音的终极解决办法

盆盆兄您好:

很高兴拜读到您的博客文章,让我长了不少见识,由衷地表示感谢!

现在苦恼我的一件事是:我用XP下的输入法生成器制作的输入法在Vista下的其它程序中均正常,惟独在IE7中不行。表示为字符集设置错乱,而且打出来的字后面自动跟有空格。

我怀疑是文件和注册表读写权限的问题。用ProcessMonitor监测发现,IE进程在读写[HKCU\Software\Microsoft\Windows\CurrentVersion\{输入法名}]时发生权限拒绝的错误,我用Regedit把这个项设置为everyone读写后,再测试仍然是这个错误。关于IE7的读写权限,是不是还有其它的特殊开关控制它?望不吝赐教,谢谢。

感谢您为大家创作的精品文章,祝天天快乐!

2007年6月21日 18:37 by ahpeng

# re: Windows Vista IE下紫光拼音的终极解决办法

To okuc:

感谢您的光临。

这个问题是因为IE进程和加载项的完整性级别比较低,所以不能写入这些注册表键值。

目前没有找到现成的工具进行解决,可以临时将所需站点加入可信站点,进行解决,或者参考以下文档,进行编程:

http://msdn.microsoft.com/library/en-us/ietechcol/dnwebgen/protectedmode.asp?frame=true

2007年9月7日 10:32 by 盆盆的博客

# 微软中文技术论坛:Windows Vista家庭版没有组策略编辑器怎么办?

在新开张的 微软中文技术论坛 里,有网友发表了一个 帖子 ,说是想用盆盆的一篇 ITECN文章 里所介绍的方法,解决中文输入法的兼容性问题。这个方法要求使用组策略编辑器,给当前用户添加“修改一个对象标签”的特权,然而家庭版的Windows

2007年12月5日 14:02 by pp

# re: Windows Vista IE下紫光拼音的终极解决办法

VISTA太垃圾了,问题成堆!!!!严重影响工作娱乐和学习!

2008年1月7日 21:35 by nano

# re: Windows Vista IE下紫光拼音的终极解决办法

这样做会不会提升输入法权限造成漏洞呢?输入法在历史上可是造成了不止一个漏洞呢。最近一次,google...

:)

说说您的看法?

(必填) 
必填 
(必填)