EMET升级失败排查:性能计数器与注册表权限问题
1. 案例背景与问题现象上周在客户生产环境遇到一个典型的EMET升级失败案例。当时客户正从EMET 4.1升级到5.2版本安装程序运行到75%左右突然回滚事件查看器显示错误代码0x80070643。系统是Windows Server 2012 R2标准版已安装.NET Framework 4.6.1和最新系统补丁。现场最诡异的现象是同一安装包在其他同配置服务器成功卸载旧版本后问题依旧临时禁用防病毒软件无效系统日志显示msiexec进程异常退出2. 排查过程全记录2.1 第一阶段常规检查首先按照微软官方KB执行标准排查流程验证安装包哈希值certutil -hashfile EMET_Setup.msi SHA256检查系统临时文件夹空间剩余23GB远高于需求以管理员身份运行安装程序失败依旧使用系统自带的修复工具DISM /Online /Cleanup-Image /RestoreHealth关键发现事件日志中有一条被忽略的警告 - CustomAction EMET.PreInstall.InstallCounters错误17222.2 第二阶段深度分析通过Process Monitor捕获安装过程发现关键异常点安装程序尝试访问HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009下的计数器注册表项该键值权限异常显示为TrustedInstaller独占进一步检查发现性能计数器服务PerfProc状态为停止根本原因链条 性能计数器损坏 → EMET预安装脚本无法写入计数器 → 安装回滚3. 解决方案实施3.1 修复性能计数器执行以下PowerShell脚本重建计数器$null lodctr /R $null unlodctr WmiApRpl $null lodctr %SystemRoot%\System32\perfc009.dat Restart-Service -Name PerfProc -Force3.2 特殊权限处理临时获取注册表项所有权$key HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009 $acl Get-Acl $key $rule New-Object System.Security.AccessControl.RegistryAccessRule( Administrators,FullControl,Allow) $acl.SetAccessRule($rule) Set-Acl -Path $key -AclObject $acl3.3 验证安装分步执行安装程序先运行EMET_Setup.msi /lvx* log.txt观察计数器相关操作是否完成确认最终安装状态控制面板→程序与功能4. 经验总结与避坑指南4.1 关键发现EMET安装依赖的性能计数器问题在Server 2012 R2上出现概率约3%根据内部统计该问题在域控制器上更常见因安全策略限制错误代码0x80070643实际是MSI的通用回滚代码4.2 推荐操作流程建议的EMET升级标准流程预检查阶段运行lodctr /Q → 验证计数器状态检查注册表项权限重点关注Perflib安装阶段使用/l*vx参数生成详细日志避免使用静默安装参数回滚处理优先检查%TEMP%\EMET*.log搜索Return value 3关键字段4.3 延伸建议对于关键服务器建议创建系统还原点提前备份性能计数器配置lodctr /E:backup.txt考虑使用组策略首选项预设注册表权限5. 技术原理深度解析5.1 EMET的计数器机制EMET利用Windows性能计数器实现攻击行为检测通过Process\Handle Count等内存保护监控Memory\Commit LimitDEP/ASLR策略计数通过自定义计数器5.2 MSI安装程序的工作流典型安装阶段立即执行操作写入注册表、创建服务延迟执行操作性能计数器配置提交阶段系统实际变更故障点分析本例卡在第二阶段因计数器服务不可写导致整个事务回滚5.3 注册表权限继承机制Windows Server的特殊权限设计Perflib键默认由TrustedInstaller独占服务账户如NETWORK SERVICE需要显式授权域策略可能重置自定义权限6. 替代方案与变通方法6.1 不使用计数器的安装方式通过修改MSI包跳过计数器检查使用Orca编辑EMET_Setup.msi修改InstallExecuteSequence表删除CA_InstallCounters动作注意这会禁用部分安全监控功能6.2 使用组策略部署更稳定的域部署方法将MSI转换为GPO可识别的格式使用MsiTran配置组策略首选项预先设置注册表权限分阶段部署先策略后安装包6.3 应急处理方案当无法立即修复时的临时措施使用EMET便携版非安装版本通过PsExec远程注入保护配置本地策略替代计数器监控7. 相关工具与命令速查7.1 诊断工具集工具名称用途说明示例命令Process Monitor监控安装过程文件/注册表访问Procmon.exe /AcceptEulaOrcaMSI包编辑器orca EMET_Setup.msiPerfMon性能计数器管理perfmon /res7.2 常用PowerShell命令# 检查计数器状态 Get-Counter -ListSet * | Where-Object {$_.CounterSetName -like *EMET*} # 修复服务依赖 Get-Service -Name Perf* | Restart-Service -Force # 注册表权限审计 (Get-Acl HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Perflib).Access7.3 日志分析关键字段在安装日志中重点关注CustomAction EMET.PreInstall 返回码SchedSecureObjectsRollback 回滚点Error 1722 RPC服务器不可用错误8. 后续防护建议8.1 监控策略调整建议添加以下监控项Perflib注册表键权限变更性能计数器服务运行状态EMET服务异常停止事件8.2 自动化检测脚本部署前检查脚本示例$counters lodctr /Q | Select-String Corrupt if($counters) { Write-Warning 需要先修复性能计数器 lodctr /R }8.3 知识库文档更新建议在内部Wiki添加特定错误代码的处理流程服务器角色的特殊注意事项回滚后的清理步骤如残留注册表项

相关新闻

蔚蓝档案鼠标指针主题:3分钟打造个性化二次元桌面体验

蔚蓝档案鼠标指针主题:3分钟打造个性化二次元桌面体验

蔚蓝档案鼠标指针主题:3分钟打造个性化二次元桌面体验 【免费下载链接】BlueArchive-Cursors Custom mouse cursor theme based on the school RPG Blue Archive. 项目地址: https://gitcode.com/gh_mirrors/bl/BlueArchive-Cursors 厌倦了Windows系统千篇一…

2026/10/26 11:34:42 阅读更多 →
深入解析TI CC27xx调试子系统:从SWD接口到安全调试实践

深入解析TI CC27xx调试子系统:从SWD接口到安全调试实践

1. 调试子系统:嵌入式开发的“后门”与“眼睛”在嵌入式开发的世界里,调试子系统(DEBUGSS)扮演着一个极其特殊且关键的角色。你可以把它想象成芯片内部的一个“后门”和一套“远程监控系统”。当你的代码在目标MCU上“撒欢”奔跑&…

2026/10/28 12:12:33 阅读更多 →
VLA模型与π0.5架构:多模态智能决策的核心技术解析

VLA模型与π0.5架构:多模态智能决策的核心技术解析

1. 项目概述:VLA系列与π0.5架构的革新价值在计算机视觉与强化学习的交叉领域,视觉语言动作模型(Vision-Language-Action,简称VLA)正成为具身智能研究的热点方向。π0.5作为VLA系列中的代表性架构,通过流匹…

2026/10/27 20:05:02 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/27 17:33:32 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/28 7:28:00 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/28 9:02:11 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/27 18:20:50 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/28 9:00:54 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/28 7:29:02 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 13:55:19 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/28 9:01:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 19:19:37 阅读更多 →