错误代码1905由windows installer服务异常引起,需依次重启服务、重新注册msi.dll等dll文件、修复installer目录权限与缓存、运行sfc/dism扫描系统文件、重置msiserver注册表项。

如果您在Windows系统中遇到错误代码1905,该错误通常与Windows Installer服务或相关组件故障有关,表现为软件安装、卸载或更新失败,并提示“Windows Installer服务无法启动”或“无法访问Windows Installer服务”。以下是解决此问题的步骤:
一、重启Windows Installer服务
该方法通过手动重启被阻塞或停止的服务,恢复其正常运行状态。Windows Installer服务(msiserver)是处理.msi安装包的核心服务,若其处于禁用、暂停或崩溃状态,将直接触发错误1905。
1、按 Win + R 键打开“运行”对话框,输入 services.msc 并回车。
2、在服务列表中找到 Windows Installer,右键单击并选择“属性”。
3、在“启动类型”下拉菜单中,确认设置为 手动 或 自动(延迟启动);若当前状态为“已停止”,点击“启动”按钮。
4、点击“应用”后,再点击“确定”关闭窗口。
二、注册Windows Installer动态链接库文件
错误1905常因msi.dll、msihnd.dll等关键Installer组件未正确注册或损坏所致。重新注册可强制系统加载有效接口。
1、以管理员身份运行命令提示符:按 Win + X,选择“Windows Terminal(管理员)”或“命令提示符(管理员)”。
2、依次执行以下命令,每行执行完毕后按回车:
regsvr32 /u msi.dll
regsvr32 msi.dll
regsvr32 msihnd.dll
三、重置Windows Installer临时文件与缓存
Windows Installer在执行操作时会生成临时文件(如%windir%\Installer目录下的缓存),若这些文件权限异常、损坏或被锁定,将导致服务初始化失败。
1、打开文件资源管理器,在地址栏粘贴并访问路径:%windir%\Installer。
2、检查该文件夹是否具有完全控制权限:右键文件夹 → “属性” → “安全”选项卡 → 选中“Administrators”组 → 点击“编辑” → 勾选“完全控制” → 确定。
3、在该目录内,查找并重命名名为 inprogress 的隐藏文件(如有),将其改为 inprogress.old。
4、重启计算机后再次尝试安装操作。
四、执行系统文件检查与DISM修复
系统核心文件(如msiexec.exe、ole32.dll)若发生损坏或版本不匹配,可能引发错误1905。SFC与DISM工具可验证并还原受保护的系统文件。
1、以管理员身份打开Windows Terminal,依次执行:
sfc /scannow
2、等待扫描完成(显示“Windows 资源保护未发现任何完整性冲突”表示无损坏;若提示已修复,请继续下一步)。
3、执行DISM命令修复映像基础:
DISM /Online /Cleanup-Image /RestoreHealth
4、命令执行完毕后,重启系统。
五、重建Windows Installer服务注册表项
当注册表中HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\msiserver子项缺失或配置错误(如ImagePath、Start值异常),服务将无法加载。本方法通过导出默认配置并重写关键键值实现修复。
1、以管理员身份运行命令提示符,执行以下命令导出原始服务项备份(可选):
reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\msiserver" C:\msiserver_backup.reg
2、执行以下命令重置关键注册表值:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\msiserver" /v "ImagePath" /t REG_EXPAND_SZ /d "%SystemRoot%\system32\msiexec.exe /V" /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\msiserver" /v "Start" /t REG_DWORD /d 3 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\msiserver" /v "Type" /t REG_DWORD /d 0x10 /f











