问题
解决方案
什么是 ESET 安装修复程序?
ESET 安装修复程序(InstaFix,安装修复)是 ESET 产品的技术支持工具。ESET 安装修复程序旨在修复安装 ESET 软件时可能出现的若干服务问题。
如何使用 ESET 安装修复程序?
- 单击以下相应链接,为您的操作系统下载 ESET 安装修复程序 (单击以获取步骤,确定您的操作系统是 32 位还是 64 位):
- 工具下载完成后,在管理命令提示符下使用以下命令之一运行 ESET 安装修复程序。所有命令都应添加到安装修复程序所在目录之后,例如
C:\Users\Owner\Desktop\InstFix_nt64.exe -fix MRL
MSI 注册表遗留物
问题
尝试将 ESET 产品升级到最新版本失败。安装日志报告错误"Error 2753: The File 'shellExt.dll' is not marked for installation"。
原因
- 升级过程被新安装的先前已升级过的产品中断。这种情况发生在负责删除当前正在升级的产品的 RunEngine 部分成功结束之后。
- 怀疑组策略应用程序管理 (AppMgmt) 服务正在运行缺失软件的安装。原因可能是某些组策略对象配置错误,根据该策略,旧产品仍应安装在系统上,而应用程序升级过程未被检测到。
解决方案
执行命令:
C:\Users\Owner\Desktop\InstFix_nt64.exe -fix MRL -b
InstFix 会从 Windows 安装程序注册表中枚举具有特定 MSI 升级代码的所有 ESET 安全产品,并尝试确定当前产品的安装程序版本。与安装版本不匹配的注册表项将从以下位置删除:
- HKCR\Installer\UpgradeCodes
- HKCR\Installer\Products
在此命令中使用 -b 开关时,将删除的每个条目都会备份到一个单独的 REG 文件中。
缺少 MSI 注册表
问题
当停止 ESET 服务 (ekrn) 时,将 ESET 产品升级到最新版本的尝试失败。安装日志包含的 RunEngine 部分仅引用了当前安装的 MSI 软件包。
原因
- Windows 安装程序缺少当前安装应用程序的注册表项。在升级过程中,必须在单独的 RunEngine 部分中调用旧的 MSI 软件包,并将其 GUID 列为产品名称。成功卸载旧的 MSI 软件包后,新的 RunEngine 部分将启动,并开始主要安装最新版本。注册表项丢失的主要原因尚不清楚。
解决方案
执行命令:
C:\Users\Owner\Desktop\InstFix_nt64.exe -fix MMR
InstFix 会检查问题是否存在,然后尝试恢复所有已知的强制 Windows 安装程序注册表键值和值。
- 手动将当前安装产品的原始 MSI 包(相同的产品、版本、平台和语言)复制到隐藏的系统目录%SystemRoot%\Installer!
-
InstFix 会收集当前安装产品的所有必要信息,并在 Windows 安装程序 MSI 缓存中搜索原始 MSI 包。如果找到了 MSI 软件包,则会在以下位置还原强制注册表键值列表:
- HKCR\Installer\UpgradeCodes
- HKCR\Installer\Products
- HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products
搜索服务索引
問題
在CA EpfwInst!FinalizeInstallonEpfwWfpRegisterCallouts中安装 ESET 产品失败,错误代码为ERROR_RM_NOT_ACTIVE (0x1a91 = 6801)。
原因
- 与 Windows Search 服务相关的某些系统文件已损坏或处于不一致状态。其中一个原因可能是执行了系统还原。
解决方法
执行命令:
C:\Users\Owner\Desktop\InstFix_nt64.exe -fix SSI
InstFix 会删除以下位置的所有*.blf和*.regtrans-ms文件:
- %SystemRoot%\system32\config\TxR
- %SystemRoot%\system32\SMI\Store\Machine
如果运行,InstFix 会尝试停止 Windows Search 服务。应用主要修复程序后,服务将再次启动。如果不成功,可能仍需要重新启动。
注册表值类型
问题
在 CAInstSupp!InstallDriverPackagesforEDEVMON的SetupInstallFromInfSection中安装 ESET Security 产品失败,错误代码为 13。
Setup API APP 日志报告了与错误时间和EDEVMON("inf: AddReg=EDEVMON")相关的"[SetupInstallFromInfSection - DefaultInstall]"问题:错误设置注册表值 HKLM..."。
原因
- 某些第三方应用程序使用 Windows 注册表文档中声明的错误注册表类型向注册表写入值。当安装下一个驱动程序时,这会导致驱动程序安装失败,因为 Windows 希望读取不同的注册表类型。
解决方法
执行命令:
C:\Users\Owner\Desktop\InstFix_nt64.exe -fix RVT -b
InstFix 会遍历已知注册表值的列表,并检查它们的类型。如果类型与预期类型不符,InstFix 会适当转换值,并将其存储为正确的预期注册表类型。
该列表目前只包含位于注册表键HKLM\System\CurrentControlSet\Control\Class下的 EDEVMON 注册表值。使用 -b 开关时,每个需要转换的注册表值都将首先备份到一个单独的 REG 文件中。
最大过滤器数量
问题
在HrInstallComponent 上的CA InstSupp!InstallDriverPackagesforEPFWLWF中安装 ESET Security 产品失败,错误代码为NETCFG_E_MAX_FILTER_LIMIT (0x8004a029)。
原因
Windows 对一次可加载的网络过滤器驱动程序的最大数量有限制。如果达到最大值,则下一个过滤器驱动程序的安装将失败。每个版本的 Windows 都硬编码了这一最大值,同时也在注册表中进行了定义。注册表中的值通常比硬编码值小得多。如果注册表中没有定义该值,则使用硬编码值。
位置
HKLM\SYSTEM\CurrentControlSet\Control\Network\MaxNumFilters:dword
解决方案
命令:
C:\Users\Owner\Desktop\InstFix_nt64.exe -fix MNF
InstFix 会删除 MaxNumFilters 注册表值,使 Windows 可以使用内部硬编码值。
PSL 修复(受保护服务残留修复)
问题
尝试在先前安装失败后安装 ESET Security 产品。
安装日志包含"产品:ESET Security - 错误 1923。无法安装 ESET 服务 (ekrn)。验证您是否有足够的权限安装系统服务"。
原因
- ESET 服务即使不存在,仍会受到保护。
解决方法
执行命令:
C:\Users\Owner\Desktop\instfix_nt64.exe -fix PSL -b
HKLM\System\CurrentControlSet\Services\ekrn\LaunchProtected注册表键值(如果该服务似乎未安装且不存在于硬盘驱动器上)。目前尚未发现副作用。 SIL 修复(服务安装遗留物修复)
问题
在先前取消或回滚安装后尝试安装 ESET Security 产品失败。
安装日志包含"产品:ESET Security - 错误 1923。无法安装 ESET 服务 (ekrn)。验证您是否有足够的权限安装系统服务"。
原因
- ESET 服务可能在安装取消后或发生回滚时仍部分注册。
解决方法
命令:
C:\Users\Owner\Desktop\instfix_nt64.exe -fix SIL -b
HKLM\System\CurrentControlSet\Services\ekrn注册表键值。目前尚未发现副作用。 PIT 修复(产品安装时间修复)
问题
使用 ESET 远程管理程序 (ERA) 对端点产品进行推送安装,有时会导致 ERA 内显示不正确的安装日期。
原因
- 此行为的确切原因尚不清楚。
解决方案
执行命令:
C:\Users\Owner\Desktop\instfix_nt64.exe -fix PIT -b
InstFix 会从 Windows 安装程序注册表中检索 ESET Security 产品的正确安装日期。然后,在 ESET Info 密钥中找到的PackageTag值就会被编码为正确的日期。
使用-b开关时,整个 ESET Info 注册表密钥将首先备份到一个单独的 REG 文件中。
注意:Self-Defense 禁止写入 ESET Info 密钥。要执行此修复,必须使用产品的高级设置或 ERA 暂时禁用 Self-Defense!目前尚未发现副作用。