通过Internet Explorer 7 (IE7)无法进行Windows在线更新

现象说明

安装IE7以后,可能由于安装不够充分、也可能由于此后又安装了某些不恰当的软件、更加可能是在线更新了某些不恰当的补丁,IE7就不能在线更新了。进入在线更新页面,会收到一封感谢信,劝告你采用IE 5.0以上的浏览器进行在线更新。显然,微软的网站不认识自家的孩子了。

原因分析

出现个问题的原因是,安装IE7以后的某些不恰当操作导致IE7的User-Agent字符串出现了错误。如果浏览器不能把正确的User-Agent字符串传递给服务器,那服务器就会搞错浏览器的版本。

在浏览器的地址栏中输入:

javascript:alert(navigator.userAgent)

就可以看到自己浏览器的User-Agent字符串了。如果在Windows Xp操作系统下面,IE7正确的User-Agent字符串如下:

Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 5.1)

如果是Windows Vista,则是:

Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0)

如果你IE7的User-Agent字符串不是上述这些,尤其是字符串中没有类似MSIE 7.0的字样,那就是无法在线更新的出错原因了。由于User-Agent出错,微软把你的IE 7.0当成非IE浏览器了。

解决方法

方法一:通过一个微软提供的小工具

微软发布了一个小工具 User Agent String Utility version 2,这个工具原来的作用是把IE7伪装成为IE6,不过,也可以用这个工具来恢复IE7的User-Agent。顺便说一句,为什么要把IE7伪装成IE6呢,因为互联网上有不少网页甚至微软自己的网页目前只支持IE6,嘿嘿!

首先,下载并安装这个工具。如果上面的链接由于某些原因导致你无法下载,可以试一试这一个链接

其次,运行这个工具,暂时把IE7伪装成为IE6,然后打开IE7,你会在标题栏上看到伪装的标记,同时用上述“原因分析”中提到的方法验证以下伪装的User-Agent字符串是否成功。

最后,把所有的IE7都关闭,伪装就解除了。有趣的是这时候再打开IE7,User-Agent字符串就恢复正常了。

方法二:通过修改注册表 (此方法限专业用户)

实际上,IE7的User-Agent字符串是可以通过注册表修改的。所在的位置如下:

HKEY_CURRENT_USER
Software
Microsoft
Windows
CurrentVersion
Internet Settings
5.0
User Agent

以及

HKEY_LOCAL_MACHINE
Software
Microsoft
Windows
CurrentVersion
Internet Settings
5.0
User Agent

在这两个位置下面,使用Platform、Version和Compatible可以定义整个浏览器的User-Agent字符串。缺省情况下,Platform和Version都应该被删除的,这样就会使用浏览器自带的缺省User-Agent字符串。

将以上位置的注册表修改后,把所有IE7都关上,再打开一个新的IE7,采用上述“原因分析”中提到的方法可以观察到User-Agent字符串被恢复成缺省。

相关链接

作者: 饭泡粥 [Vepozor]

波波坡原创文章 链接:http://www.bobopo.com/article/code/ie7_windows_update.htm

标签:

关键词: Internet Explorer 7, IE7, 互联网, 浏览器, Windows在线更新, User Agent, 错误

创建日期: 2007-06-12

文库 微博 博客 作品 首页