ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Reset Windows Update Tool 代码揭秘:sc sdset 安全描述符与 regsvr32 批量重注册 DLL 深度剖析

Reset Windows Update Tool 代码揭秘:sc sdset 安全描述符与 regsvr32 批量重注册 DLL 深度剖析 Reset Windows Update Tool 代码揭秘sc sdset 安全描述符与 regsvr32 批量重注册 DLL 深度剖析【免费下载链接】Script-Reset-Windows-Update-ToolThis script reset the Windows Update Components.项目地址: https://gitcode.com/gh_mirrors/sc/Script-Reset-Windows-Update-ToolReset Windows Update Tool是一款经典的 Windows 更新修复脚本工具核心功能只有一个重置 Windows Update 组件Reset Windows Update Components。整个项目仅有一个 1000 多行的批处理脚本 ResetWUEng.cmd却把停服务 → 清文件 → 重置安全描述符 → 重注册 DLL → 恢复服务这条完整修复链路写得清清楚楚是学习 Windows 更新排障原理的绝佳样本。项目一览一个脚本20 个修复选项工具运行后是一个黑底绿字的控制台菜单提供 20 个选项覆盖了 Windows 更新故障最常见的几类病根类别菜单功能底层命令服务重置重置 Windows Update 组件net stop/startsc文件清理删除临时文件、旧下载缓存del/ren系统修复扫描修复系统文件与映像sfc /scannow、Dism网络重置修复/重置 Winsock 设置netsh winsock reset注册表清理删除错误的注册表值reg delete/reg add其他产品密钥查找、重启、诊断工具wmic、shutdown版本演进记录见 README.md项目从10.5.3.3一路迭代到10.5.52023-03-24迁移至 wureset-tools 组织。注意 README 顶部已标注deprecated徽章README.md脚本源码内记录的最新版本号为10.5.4.1ResetWUEng.cmd。快速上手一键运行的最小步骤将ResetWUEng.cmd下载到本地右键 → 以管理员身份运行接受使用条款输入Y后进入主菜单选择菜单项2. Resets the Windows Update Components等待全部操作完成。脚本自身有两道安全门系统版本检测ResetWUEng.cmd通过ver命令解析版本号只放行 Windows 8 / 8.1 / 10Vista 与 Windows 7 会被拒绝管理员权限检测ResetWUEng.cmd用一条openfiles命令试探——普通用户无权运行它靠errorlevel即可判断是否已提权。这两个技巧都是批处理编程的老手艺值得收藏。核心一sc sdset重置服务安全描述符当 Windows 更新报无法访问服务或组件反复损坏时一个高频原因是服务的安全描述符Security Descriptor被改坏了——管理员账户或 SYSTEM 丢失了操作权限服务从此无法正常启停。脚本给出的解法是直接把四个关键服务的描述符还原为系统出厂默认值ResetWUEng.cmdsc.exe sdset wuauserv D:(A;CI;CCLCSWRPLORC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOSDRCWDWO;;;WD)这段天书其实是标准的 DACL 语法拆开看并不神秘D:开头的是权限部分DACLS:开头的是属主部分SACL每条A;规则里BA代表Administrators管理员组SY代表LocalSystem本地系统账户AU代表 All Users中间那串字母是权限位CCDCLCSWRPWPDTLOCRSDRCWDWO覆盖了更改权限、删除、列出、读取/写入属性、完全控制等几乎所有服务操作权限。换句话说把管理员和 SYSTEM 该有的权限一条不少地写回去服务就复活了。脚本一共重置了四个服务服务作用wuauservWindows Update 主服务bits后台智能传输服务下载补丁靠它cryptsvc加密服务验证补丁签名trustedinstaller组件存储的管理者核心二regsvr32 /s批量重注册 36 个 DLL服务权限修好后脚本切到%SYSTEMROOT%\system32目录用regsvr32.exe /s静默模式逐个重新向 COM 注册表登记 36 个动态链接库ResetWUEng.cmd。这些 DLL 按功能可分为四组分组代表 DLL用途更新引擎wuapi.dll、wuaueng.dll、wuaueng1.dll、wucltui.dll、qmgr.dllWindows Update 客户端核心加密与证书softpub.dll、wintrust.dll、dssenh.dll、rsaenh.dll、cryptdlg.dll补丁签名验证XML 与脚本msxml.dll、msxml3.dll、msxml6.dll、jscript.dll、vbscript.dll更新包的 XML 描述解析系统基础atl.dll、ole32.dll、shell32.dll、shell相关组件COM 运行基座为什么是批量因为这些 DLL 彼此依赖——更新引擎调用 XML 解析XML 解析依赖 COM 基础库任何一个注册项丢失都可能让整条链路卡住一次全部重注册是最稳的地毯式修复。完整修复流程一次菜单项背后的 8 个阶段把上面两块拼起来就是菜单项 2 调用的:components子程序ResetWUEng.cmd的完整剧本停服务net stop依次停止bits、wuauserv、appidsvc、cryptsvc并taskkill掉wuauclt.exeResetWUEng.cmd验证停妥用sc query ... | findstr STOPPED逐个确认任何一个没停下就中止避免文件被占用ResetWUEng.cmd清旧数据删除qmgr*.dat下载队列文件ResetWUEng.cmd重命名而非删除先把旧备份.bak清掉再把SoftwareDistribution、Catroot2、pending.xml、WindowsUpdate.log改名保留系统会自动重建全新目录——可回滚比直接删除更稳妥ResetWUEng.cmdsc sdset还原四个服务的安全描述符上文核心一regsvr32 /s批量重注册 36 个 DLL上文核心二网络层重置netsh winsock resetnetsh winhttp reset proxy清除网络栈残留ResetWUEng.cmd恢复启动类型并重启服务sc config把wuauserv、bits等改回自动启动最后net start依次拉起ResetWUEng.cmd。整个流程体现了经典的停 → 清 → 修 → 备 → 起五段式思路每一步都有sc query状态校验兜底工程化程度远超一般批处理脚本。项目文件导读仓库极简三个文件各司其职ResetWUEng.cmd主脚本1089 行所有功能与注释均在其中README.md功能列表、多语言 Wiki 指引与版本历史LICENSEMIT 开源协议。写在最后先备份再修复脚本必须以管理员身份运行且仅限 Windows 8 / 8.1 / 10菜单项11删除错误注册表值在动手前会自动把全部注册表导出备份到桌面Backup\Regedit\时间戳目录ResetWUEng.cmd但涉及系统服务的操作建议先手动创建一个系统还原点菜单项 1 可直接打开该设置批处理脚本常被杀毒软件误报README 与条款页面都建议你先通读一遍源码再用——这份脚本正好值得逐行读一遍。如果你正被 Windows 更新错误码困扰不妨按本文的流程理解它背后的每一步操作动手前备份永远是你最好的保险。【免费下载链接】Script-Reset-Windows-Update-ToolThis script reset the Windows Update Components.项目地址: https://gitcode.com/gh_mirrors/sc/Script-Reset-Windows-Update-Tool创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表