最近,在安装软件时,加载一会子总会弹出一个框:无法访问Windows Installer服务... 这样的错误,导致安装失败。
后来发现自己机器的COM组件加载也都出了问题,现象:
1、开始-运行-dcomcnfg,进入组件服务管理页面中,组件服务-计算机-我的电脑 下,COM+应用程序
和DCOM配置都显示不正常,点DCOM配置目录,管理页面就自动关闭了。郁闷...
2、查看事件日志,发觉有如下错误:
运行时环境检测到其内部状态存在不一致。这说明进程中存在潜在的不稳定性,可能是由于COM+应用程序中
运行自定义组件、COM+ 应用程序使用的组件或其他因素引起的。
3、Google后发现有这样的一片解决方案,E文的,这里就简单描述其原因和实施步骤
原因:COM+ catalog被毁坏了
解决办法:(不适用Windows vista、Windows Server 2008、Windows Server 2008 R2、Windows 7)
3.1 Rename %windir%\system32\Clbcatq.dll to %windir%\system32\~Clbcatq.dll
3.2 停止COM+ Event System Service,并设置其启动类型为非自动
3.3 重启电脑并进入注册表(regedit)
3.4 删除注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3
3.5 命令行:cd %windir%, rmdir /s Registration
3.5 控制面板-添加删除程序-添加删除windows组件,直接next重新安装一遍
over.
补充:如果IIS已经安装(其会安装好几个COM+组件),则上述过程会导致其丢失掉这几个组件。
命令行rundll32 %windir%\system32\inetsrv\wamreg.dll,CreateIISPackage来创建。
注意: 如果上述过程中rename/delete等操作被阻止掉,则在安全模式下进行此过程操作即可。
至此COM+错误解决,但Windows Installer无法访问的错误依旧存在,继续。
4、网上Google,有好多种,这里只记录我采用的那种。
4.1 重写注册表,用notepad编辑如下内容并保存为.reg文件,然后双击运行之即可完成导入
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSIServer]
"ImagePath"=-
"ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,\
00,73,00,69,00,65,00,78,00,65,00,63,00,2e,00,65,00,78,00,65,00,20,00,2f,00,\
56,00,00,00
4.2 安全模式下键入 msiexec /regserver即可。