Windows Installer 基础:
Windows Installer 综合问题:
Windows Installer出错信息解决(一)
Windows Installer出错信息解决(二)
禁用Windows Installer
HKEY_LOCAL_MACHINESoftwarePoliciesMicrosoftWindowslnstaller
适用范围:Windows NT/2000
为了安全起见,管理员可以防止用户在系统上安装软件或只允许运行系统管理员提供的程序。
步骤1:运行注册表编辑器,找到HKEY_LOCAL_MACHINESoftwarePoliciesMicrosoftWindowslnstaller子键。
步骤2:找到或新建“DisableMSl”键值项,其数据类型为“字符串值”,设置其键值为“0”,表示Windows lnstaller处于完全启用状态,用户可以安装和升级软件(默认状态下,Windows lnstaller是处于启用状态的);如果设置为“1”,则只允许用户安装系统管理员分配的(在桌面上提供的)或发行的(添加到“添加或删除程序”)的程序;设置为“2”则表示Windows lnstaller处于停用状态。
注意
此设置只对Windows lnstaller有效,并不阻止用户使用其他方法来安装和升级程序。
关于Windows Installer服务出错解决方法
方法一:
卸载,重新安装windows installer服务
一、先用msiexec /unregserver 停掉windows installer服务。
二、下载InstMsiW.exe,用winrar解压开。进入目录。
三、右击msi.inf ,点击安装,右击mspatcha.inf ,点击安装。
四、再用msiexec.exe /regserver 启用服务。
方法二:
1.如果曾安装过ACDSee5.0(包括迷你中文版),卸载它。如果还不行就重装Windows
Installer 或者ACDSee 4.0
2.运行cmd,然后运行sfc/scannow检查系统文件
3.运行Services.msc,把Windows Installer 服务设置为手动运行,然后重新运行
4.打开任务管理器,找到并结束ikernel.exe进程,重新安装
5.禁用杀毒软件的实时防护
6.删除 C:Program FilesCommon FilesInstallShieldEngineIntel 32这个文
件夹中的所有文件,然后重启动电脑,重新运行安装程序
或者查看下面的网页:
安装程序安装出错解决方法之葵花宝典 moonet(翻译)
http://www.csdn.net/develop/article/18/18184.shtm
方法三:
这是由于一些软件制作的问题导致windows installer不能正常工作
恢复步骤如下:
1.再次安装windows installer2.0,运行instmsiw.exe
如果说'服务已经安装'然后直接退出安装就再跟着做,否则你重装就OK了!
2.删除注册表中的[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSIServer]
然后运行instmsiw.exe
3.绝招:
(1) 删除msiserver 服务
运行regedit,删除下面的MSIServer 服务
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSIServer]
把下面的内容存为unmsiserver.reg 文件,然后双击左键,把它合并进注册表中
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;unmsiserver.reg
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSIServer]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(2) 删除msi 的文件
用下面的脚本存为一个unmsi.inf文件,然后在inf文件上右键单击install,就会删除一些msi的dll,这时windows 的 sfc机制可能警告一些系统文件被修改要求插入win2k的光盘,不理睬它。这个脚本是我从instmsiw.exe中修改得来的。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;unmsi.inf
;;;;;;;;;;;;;;;;;
[Version]
signature = '$Windows NT$'
Class = %ExceptionClassDesc%
ClassGUID = {F5776D81-AE53-4935-8E84-B0B283D8BCEF}
Provider = %Microsoft%
CatalogFile = msi.cat
ComponentId = {2E742517-5D48-4DBD-BF93-48FDCF36E634} ; GUID assigned to the Windows Installer
DriverVer=03-13-2001, 2.0.2460.1
[SourceDisksNames]
1 = %msi_media%
[SourceDisksFiles]
msi.dll = 1
msihnd.dll = 1
msimsg.dll = 1
msiexec.exe = 1
msisip.dll = 1
[DestinationDirs]
Msi.SystemFiles = 11 ; %windir%system32
Msi.DllCacheFiles = 11,dllcache ; %windir%system32dllcache
[DefaultInstall]
DelFiles = Msi.SystemFiles,Msi.DllCacheFiles
;
; COPYFLG_REPLACE_BOOT_FILE flag (0x1000) not necessary for
; files in the dllcache
;
[Msi.DllCacheFiles]
msi.dll
msihnd.dll
msimsg.dll
msiexec.exe
msisip.dll
[Msi.SystemFiles]
msi.dll
msihnd.dll
msimsg.dll
msiexec.exe
msisip.dll
[Strings]
Microsoft = 'Microsoft Corporation'
msi_media = 'Microsoft Windows Installer Distribution Media'
ExceptionClassDesc = 'Microsoft Windows Installer'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(3) 重新启动,按F8键,进入带命令行的安全模式,执行下面的命令
regsvr32 /u %windir%msi.dll
del %windir%msi.dll
(4) 重启动,运行instmsiw.exe,安装windows installer2.0 ,一切正常了。
常见Windows Installer故障解决
刘胖庄 电脑报
实例一:安装ACDsee 5.0或虚拟光驱Daemon时,出现“安装错误”提示框。
解决方案:这是最常见的故障。由于这两个软件采用了最先进的Windows Installer技术,在Windows 98或Windows 2000早期版本中最常见,只要下载最新的Windows Installer2.0版本,安装后即可解决。
实例二:尝试安装或修正Office时出现“The Windows Installer Service Could Not Be Accessed”(无法访问 Windows Installer 服务)或“本程序已经更新,某个文件正在使用,请重新启动您的计算机再试!”错误信息。
解决方案:原因是Windows Installer文件已损坏或丢失,可能会发生此问题。
方法1:重新注册 Windows Installer(适用于Windows 2000/XP),打开注册表编辑器,找到“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSIServer”分支,确定分支下的“ImagePath”字符串数值包含Msiexec.exe文件的正确路径。
注意:下面是正确路径的一个示例,其中 drive 是 Windows 安装到的驱动器:
drive:WindowsSystem32msiexec.exe /V(如果没有请建立此键值)
重新启动计算机,按F8键进入安全模式,点击“开始→运行”,输入 msiexec /regserver,然后“确定”。
重启计算机后,如果问题仍未解决的话,请用方法2。
方法2:重新安装 Windows Installer,进入MS-DOS(在Windows2000/XP中是命令提示符窗口),运行以下命令。
Windows XP下:attrib -r -s -h drive:WindowsSystem32dllcache
Windows 98下:attrib -r -s -h drive:WindowsSystem
然后依次输入下面命令,输入一条按一下回车键:
ren msi.dll msi.old
ren msiexec.exe msiexec.old
ren msihnd.dll msihnd.old
最后在命令提示符处,键入exit,然后按回车键,重新启动计算机,将 Windows Installer 文件更新为最新版本。
一个烦人的Windows Installer问题
梁志平 中国电脑教育报
近日在网上闲逛,发现Vmware出4.0版了。这可是我最喜欢用的虚拟机软件啊!赶快下载,却发现安装不上,系统提示“不能访问Windows Installer服务”。再试一次,还是如此。打开“管理工具”下的“服务”,找到Windows Installer,查看其属性,发现启动类型为“自动”,服务状态为“已停止”,心想可能是什么时候把服务关了吧,单击“启动”按钮,咦?无法启动了!Windows提示“在本地计算机无法启动 Windows Installer 服务。错误 5: 拒绝访问”。自动不行,就用手动!结果还是出现同样的提示!重新启动电脑后故障依旧,更严重的是,只要是使用MSI文件来安装的软件,现在都无法安装和卸载了!
赶紧上网请教高手吧,论坛上支招的高人真不少,总结起来有四招:一是检查当前用户有没有管理员权限(但我的电脑只有Administrator一个用户);二是下载最新的Windows Installer 2.0版;三是结束进程IKERNEL.EXE后再安装;四是删除系统安装目录Program FilesCommon FilesInstallShieldEngine下的所有文件再安装。
我按照高手们所说的一一操作,但依旧无法进行安装!重试过很多次后,“拒绝访问”四个字提醒了我:难道是C盘访问权限的原因?我的硬盘是NTFS格式的,前一段时间RPC漏洞弄得人心惶惶,我打上了补丁后还不放心,删除了Everyone组,另添加了Administrator对硬盘的完全控制权。难道是这个原因?我试着在“C盘→属性→安全”选项卡下添加Everyone组后,启动Windows Installer服务,居然成功了!
重试几次后发现,其实只需要给Everyone组赋予“读取及运行”、“列出文件夹目录”、“读取”三项权限其中之一,就可以解决Windows Installer无法启动的问题。如果顾及隐私和安全问题的话,只赋予Everyone组“列出文件夹目录”权限即可。使用Windows 2000/XP和NTFS分区的朋友们,如果你的Windows Installer也出了问题,可别忘了我的这番经历哦!
Windows Installer出错信息解决
这几天重装计算机,碰到一系列的关于WINDOWS INSTALLER的出错信息,在网上查了一些相关资料,终于一一解决了.
问题一:
一、所有使用installer安装的程序,均不能正常安装,提示:“不能访问windows installer 服务。可能你在安全模式下运行 windows ,或者windows installer 没有正确的安装。请和你的支持人员联系以获得帮助”
二、察看windows installer服务,一般为停用。如果试图在service中启用,有时会发现,被系统禁用,再启动,提示:“指定的服务已标记为删除”
三、如果试图重新安装InstMsiW.exe,提示:“指定的服务已存在”
resolution:
The MSI Installer can be a real pain. It may be that one of the files required by it is corrupt. Here's what you do. Run msiexec /unregserver again. Then delete msiexec.exe from the system32 directory. Potentially, you could rerun the install at this point but for some reason this doesn't always work. Instead, download a fresh copy of the windows installer, use an unzipping tool to extract it, go into the folder and manually install from the inf files. To do this, right click on it and select install. Make sure you do msi.inf first, and then mspatcha.inf or you get a missing file error (likely because msiexec.exe is missing). After all this run msiexec.exe /regserver to recreate the service.
一、先用msiexec /unregserver 停掉windows installer服务。
二、下载InstMsiW.exe,用winrar解压开。进入目录。
三、右击msi.inf ,点击安装,右击mspatcha.inf ,点击安装。
四、再用msiexec.exe /regserver 启用服务。
问题二:
以上的问题解决后,在我安装vpc的时候,又碰到这个问题:Error -1607: Unable to Install InstallShield Scripting Run Time
查了相关的资料后,发现我安装的系统里没有ISScript.exe.
所以我下载并更新了IkernelUpdate.exe and IsScript7x.zip...问题就解决了。
当然很多时候出错的原因不一定相同,解决的方法也不一定一样,我只是把我的解决方法拿出来,算是一个参考。