今天遇到symantec的经典安装提示“检测到需要重新启动的挂起系统更改。请重新启动系统并重新运行安装”,好吧,有官方文档指导,我不怕。

使用 regedit.exe 打开 Windows 注册表。
在以下位置搜索注册表项 PendingFileRenameOperations:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Session Manager
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\BackupRestore\KeysNotToRestore
如果找到该注册表项,请先备份每个注册表项,然后删除每个注册表项中的项。
搜索 RebootRequired 注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired
如果找到该注册表项,请先进行备份,然后将其删除。
重新启动 SEP 安装,安装应完成且没有错误。
对于新安装,可能还需要删除以下注册表项:

32 位操作系统:HKEY_LOCAL_MACHINE\SOFTWARE\Symantec_Installer
64 位操作系统:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Symantec_Installer

坑来了

按照操作执行了三遍,重启,仍然这个提示,好在官方文档里提到了日志文件的内容,我看到这句有问题没有检测过去。这句检测太多了,估计不只是官方说的注册表的检测。

<font color='red' >(NOT ((LOADEDDRIVERSFOUND=11) OR PENDINGMODULEREMOVAL OR TEEFERPENDINGREBOOT)) OR MIGRATE OR NORTONFOUND OR NORTONAV OR NORTONAVPRO</font>

能不能跳过去呢?

开始绕过

  • Sep64.msi 这类的安装文件包含了一些表结构,可以修改这些设置从而改变安装包的逻辑或者参数。因此我尝试使用可以修改MSI的软件来完成绕过检查。微软的SDK工具包里面提供了这个orca的工具。

绕过Symantec的经典“检测到需要重新启动的挂起系统更改。请重新启动系统并重新运行安装”

  • 在msi包上,右键选择Open with orca ,然后左侧找到Lauchcondition 表。找到两行检测需要重新启动的挂起系统更改 的项目,选择删除,当然也可以把条件改成能通过的

绕过Symantec的经典“检测到需要重新启动的挂起系统更改。请重新启动系统并重新运行安装”

  • 保存,后关闭ORCA

  • 不要使用setup.exe来执行安装,这个会进行软件的完整性检查,直接执行sep64.msi 进行安装即可。

最后总结

  1. symantec之前的12版本不知道什么原因直接没有了,怀疑是版本升级时,删除旧的时可能出错了,但新的装不上(检查条件里还会检查是否有sep存在)。