断网离线电脑安装软件或补丁时报错“吊销过程无法继续 - 无法检测证书”的解决思路
最近遇到一位网友在断网离线的Win7 SP1电脑上安装vs2013时报错“吊销过程无法继续 - 无法检测证书”。错误代码0x800B010E。

网友试了很多方法都没有解决,包括但不限于安装sha256补丁、更新Root证书。
让网友发了安装日志和cbs.log日志,看了一遍没看出问题所在。也让网友执行命令sfc /scannow了,诊断结果是所有损坏文件都修复成功了,但重启后问题并没有解决。
由于断网无法远程,所以我让网友把一些证书相关的注册表导出发给我,这样我可以删除我虚拟机里相同的注册表导入网友故障电脑的。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates
虚拟机里win7断网了,上面两个注册表也替换成网友电脑的了,还是没能复现故障。
最后让网友打开事件查看器,启用Microsoft-Windows-CAPI2里的Operational日志,然后重新查看exe数字签名,在出现报错“吊销过程无法继续 - 无法检测证书”时导出日志发给我。

逐一对比win7虚拟机和故障电脑的这个日志,发现可疑的地方。


微软官网关于WTPF_OFFLINEOK...等值的介绍:

至此问题的原因就清楚了,应该是故障电脑上面WTPF_OFFLINEOK相关的值不存在,导致断网时不信任exe的证书,所以安装报错。
上面的这些值通过WintrustGetRegPolicyFlags获取,所以搜索“WintrustGetRegPolicyFlags注册表”找到了对应的注册表:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\WinTrust\Trust Providers\Software Publishing
故障电脑改成跟正常电脑的一样就能解决问题。
