今天遇到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的工具。
- 在msi包上,右键选择Open with orca ,然后左侧找到Lauchcondition 表。找到两行检测需要重新启动的挂起系统更改的项目,选择删除,当然也可以把条件改成能通过的
保存,后关闭ORCA
- 不要使用setup.exe来执行安装,这个会进行软件的完整性检查,直接执行sep64.msi 进行安装即可。
最后总结
- symantec之前的12版本不知道什么原因直接没有了,怀疑是版本升级时,删除旧的时可能出错了,但新的装不上(检查条件里还会检查是否有sep存在)。
本文转自 yoke88 51CTO博客,原文链接:http://blog.51cto.com/yoke88/2055901