tech memo: June 2008 存档

今天在安装Silverlight和微软拼音输入法2007 的时候,出现安装错误的提示,在安装其他使用Windows Installer服务的程序时候也是如此。打开控制面板的事件查看器,在"应用程序"的出错记录是

"产品: 微软拼音输入法2007 -- 安装程序在安装此软件包时遇到一个错误。这可能表示此软件包有错。错误码是 2203。参数是: C:\WINDOWS\Installer\3deaa.ipi, -2147287035,"

"Product: Microsoft Silverlight -- The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2203. The arguments are: C:\WINDOWS\Installer\442279.ipi, -2147287035, "

可以看到,出错原因的描述是类似的,前面部分说程序遇到错误,可能表示软件包有错,后面解释详细情况:"错误码为xxxx。参数是:C:\WINDOWS\Installer\xxxxx.ipi,-xxxxxxxxxx,"。先来分析,安装文件本身是没有问题的,都是完整的,而Windows Installer服务也是正确安装了的,版本是3.1,服务也在运行状态。在网上G了一下Windows Installer出错的解决办法,但大部分是由于Windows Installer服务本身的问题造成的,出错情况和上面也不一样。搜索"C:\WINDOWS\Installer ipi",终于找到了解决办法 ,作者给出了几种可能的原因:

  1. 当前登录用户的用户环境变量必须包括 TEMP:%USERPROFILE%\Local Settings\Temp 和 TEM:%USERPROFILE%\Local Settings\Temp (其中,%USERPROFILE%是当前登录用户的配置文件路径,如当前登录用户为Admin,则其对应的%USERPROFILE%为C:\Documents and Settings\Admin)
  2. 当前登录用户应该有管理权限,即,当前用户应该属于Administrator或者Power Users用户组。
  3. 确保"计算机名\SYSTEM"用户拥有对"C:\Documents and Settings\<当前登录用户名>\Local Settings\Temp"文件夹的绝对控制权。
  4. 对于某些软件,可能还需要"计算机名\SYSTEM"用户拥有对"C:\Documents and Settings\<当前登录用户名>\Local Settings\Application Data"文件夹的绝对控制权。

经实验,我遇到的问题是上述原因中的第三种造成的,把SYSTEM用户添加到Temp文件夹"属性"-〉"安全"设置里并赋予其完全控制的权限就可以了(必须是NFTS系统才支持文件夹的安全属性)。

前两天遇到一件怪事,由于系统中毒(还是安装了SP3和卡巴斯基杀毒软件的系统,网络真的没有绝对的安全),在卡巴斯基杀完毒后重启进系统,提示"没有找到mfc40u.dll"的错误,标题是"lsass.exe 无法找到组件",lsass.exe是系统运行时的一个重要进程,无法运行的话连系统登陆界面都进不了,点确定后屏幕背景一片黑,只能看到鼠标箭头。手动重启,在开机自检后按F8出现启动高级菜单,选择"最后一次正确的配置",顺利进入系统,但病毒依旧存在,卡巴斯基再次杀毒,重启后又遇到刚才连登陆界面都没出现的状况,没办法,只有重装系统(准确说是还原,之前我做过备份)。 

由于备份的时候就已经把IE7的临时文件夹更改到非系统分区,所以还原后也没有留意它。还原后第一件事情----安装SP3补丁,虽然之前即使安装了补丁也被病毒感染,但肯定的是,如果不安装,更可能被感染。接着把卡巴斯基和其他必备的软件安装好了,一切正常。过了几天,在用Windows自带的磁盘清理工具对系统盘进行清理的时候发现在"要删除的文件:"列表下有"Internet临时文件"和"脱机文件",文件还比较大,临时文件不是已经设置到了非系统盘吗?怎么还会在系统盘中有这么大的文件呢?打开IE7 的"Internet 属性"-》"浏览历史记录"-》"设置"的"Internet临时文件和历史记录设置"对话框,惊奇的发现"当前位置"是"C:\Document and Settings\Admin\Local Settings\Temporary Internet Files"(其中Admin是当前登陆的用户名),这个是系统的默认设置,但我确信在做系统备份之前就把位置改到了E盘,也就是文件应该存放在"E:\Internet 临时文件",而这次系统还原后我也没有对IE的临时文件设置进行过改动,想想真是蹊跷。 

既然临时文件夹现在的位置是默认的,那就改回来吧,在"Internet临时文件和历史记录设置"当中选择移动文件夹,在弹出的窗口中选择E盘,点击确定后系统会注销以更改设置,再次进入系统,再次打开"Internet临时文件和历史记录设置",很奇怪的,发现"当前位置"仍然是默认设置,即"C:\Document and Settings\Admin\Local Settings\Temporary Internet Files",很明显,更改没有起作用,重新以上操作,还是不行,包括注销后重启都没能把位置从默认位置改到E盘。打开E盘,发现"Internet 临时文件"还存在,但是文件夹不是隐藏的。 

从网上搜索到的一些相关信息来判断,可能和系统盘的临时文件夹下面的文件有关,而当前登陆用户是无法删除系统盘的Internet临时文件夹的,最后采取的解决办法就是:先重复上面的操作,把临时文件位置改到"E:\Internet 临时文件",注销后按两次Ctrl+Alt+Del键,出现经典的登陆对话窗口,"用户名"输入计算机管理员Administrator(不同于刚才登陆用的Admin用户),输入密码,现在就可以删除"C:\Document and Settings\Admin\Local Settings\Temporary Internet Files"了,注销Administrator,用Admin登陆,再看现在IE的临时文件存放位置,成功地改为了"E:\Internet 临时文件"。

Ads

关于此存档

此网页包含作者在 June 2008 发表在分类 tech memo 下的部分文章.

tech memo: March 2008 是前一个存档.

tech memo: July 2008 是后一个存档.

最新的内容请浏览 主页 或者到 存档页 查找更多内容.

他们来过

和我聊天

Powered by Movable Type 4.1