找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: wu733

[原创] Win7的“便利汇总” - KB3125574官载取代的66个补丁的取代情况

 火... [复制链接]
 楼主| 发表于 2025-6-23 06:52:05 | 显示全部楼层
研究成果出来了,喜欢非KB3125574的粉丝有福了
回复

使用道具 举报

发表于 2025-6-23 07:15:07 来自手机 | 显示全部楼层
谢谢分享
回复

使用道具 举报

 楼主| 发表于 2025-6-23 07:56:01 | 显示全部楼层
重大研究成果,请珍惜!
回复

使用道具 举报

发表于 2025-6-23 07:59:23 | 显示全部楼层
感谢分享
回复

使用道具 举报

 楼主| 发表于 2025-6-23 17:26:25 | 显示全部楼层
再次重申,重大研究成果,也请各位补丁大神验证
回复

使用道具 举报

 楼主| 发表于 2025-6-28 12:40:29 | 显示全部楼层
40个仅被KB3125574文件更新的补丁,等我有时间,剔除其中所有子文件夹中的en-US、zh-CN等不必要的文件,甚至比较是否被后续月度汇总文件更新,然后制作出无限制的版本。
回复

使用道具 举报

 楼主| 发表于 2025-6-28 12:43:56 | 显示全部楼层
本帖最后由 wu733 于 2025-6-28 12:47 编辑

以上是我的一个突发奇想,路已经初步修好,请大家多多验证,我确定最后一定会结出丰硕的果实
回复

使用道具 举报

发表于 2025-6-28 14:25:17 | 显示全部楼层
哈哈,最近几天努力在这边当水军,还是没权限发站短。。。
请楼主移步隔壁,跟我吼一声
回复

使用道具 举报

发表于 2025-6-28 14:59:19 | 显示全部楼层
还在使用win7 64位的路过
谢谢分享
回复

使用道具 举报

发表于 2025-6-28 17:22:21 | 显示全部楼层
微软对于补丁的取代关系描述至今都不十分精确,比如KB2709630

574的补丁描述明确记录它取代了KB2709630
追查KB2709630,取代关系并没有指向KB3125574.记录显示,它先是被2015/1/13安全更新KB3021674取代
然后,KB3021674被2020-02月度汇总KB4537820/仅安全KB4537813及后续汇总取代,单看KB2709630的取代链,很难想到KB3125574也能取代KB2709630

---------------------------------------------分割线---------------------------------------------

查阅KB2709630和KB3021674的mum文件,比对结论:KB3021674完整取代了KB2709630

再来看看KB3021674具体干了些什么:
它更新了以下文件

Profprov.dll        升级到-->        6.1.7601.22913
Profsvc.dll                升级到-->        6.1.7601.22913

ESU月度汇总取代了KB3021674,对上述两个文件做了更新:

Profprov.dll        升级到-->        6.1.7601.24561
Profsvc.dll                升级到-->        6.1.7601.24561

至于KB3125574是否包含KB2709630,目前我没有测试环境,就此作罢。
其实不重要了,月度汇总已经间接取代了KB2709630:你可以不使用KB3125574,总得使用最新的月度汇总吧

综上,对于KB2709630,可以使用×标记

点评

“微软对于补丁的取代关系描述至今都不十分精确” 确实如此。微软对于补丁的取代关系的描述也只是取代和非取代两种,就算有明确的取代描述,比如:KB3118401(2015年12月13日通用C运行库,修复KB2999226)。最早  详情 回复 发表于 2025-6-29 17:48
KB3021674(2014年12月20日Windows用户配置服务漏洞)。它最早被2020年02月11日月度汇总KB4537820官载取代。如果只考虑2020.01补丁方案的话,KB3021674未被2020.01月度汇总KB4534310完全取代,所以应该研究KB4534310  详情 回复 发表于 2025-6-29 17:29
感谢提供详细的分析,等我有时间,我再研究一下这个KB2709630,它很有可能被KB3125574部分文件更新,然后又被月度汇总KB4537820部分文件更新。 研究的重点是:它被KB3125574文件更新的部分,但此部分却又未被月度汇  详情 回复 发表于 2025-6-28 19:03
回复

使用道具 举报

 楼主| 发表于 2025-6-28 19:03:26 | 显示全部楼层
本帖最后由 wu733 于 2025-6-28 19:14 编辑
gwaijyut 发表于 2025-6-28 17:22
微软对于补丁的取代关系描述至今都不十分精确,比如KB2709630

574的补丁描述明确记录它取代了KB2709630
...

感谢提供详细的分析,等我有时间,我再研究一下这个KB2709630,它很有可能被KB3125574部分文件更新,然后又被月度汇总KB4534310部分文件更新。
研究的重点是:它被KB3125574文件更新的部分,但此部分却又未被月度汇总KB4534310更新
回复

使用道具 举报

 楼主| 发表于 2025-6-29 17:29:13 | 显示全部楼层
本帖最后由 wu733 于 2025-6-29 17:33 编辑
gwaijyut 发表于 2025-6-28 17:22
微软对于补丁的取代关系描述至今都不十分精确,比如KB2709630

574的补丁描述明确记录它取代了KB2709630
...

KB3021674(2014年12月20日Windows用户配置服务漏洞)。它最早被2020年02月11日月度汇总KB4537820官载取代。如果只考虑2020.01补丁方案的话,KB3021674未被2020.01月度汇总KB4534310完全取代,所以应该研究KB4534310KB3125574KB3021674分别对KB2709630的影响(文件更新)。
回复

使用道具 举报

 楼主| 发表于 2025-6-29 17:48:28 | 显示全部楼层
gwaijyut 发表于 2025-6-28 17:22
微软对于补丁的取代关系描述至今都不十分精确,比如KB2709630

574的补丁描述明确记录它取代了KB2709630
...

“微软对于补丁的取代关系描述至今都不十分精确”

确实如此。微软对于补丁的取代关系的描述也只是取代非取代两种,就算有明确的取代描述,比如:KB31184012015年12月13日通用C运行库,修复KB2999226)。最早被KB4015549(2017年04月11日月度汇总)官载取代。结果是,如果你不打KB3118401,只打后续月度汇总,WU还是会推送这个KB3118401。所以,补丁之间的取代关系不仅仅只有取代和非取代两种。还存在部分取代,包括但不限于:完全文件取代(所有文件版本更新)但又缺少原补丁对系统的注册表写入(如KB2898851)、部分文件取代(部分文件版本更新)等情况
回复

使用道具 举报

发表于 2025-6-29 23:05:59 | 显示全部楼层
本帖最后由 gwaijyut 于 2025-6-30 16:12 编辑
wu733 发表于 2025-6-29 17:29
KB3021674(2014年12月20日Windows用户配置服务漏洞)。它最早被2020年02月11日月度汇总KB4537820官载取 ...

KB4534310与此无关。它既不取代KB3021674,也不取代KB2709630
如果只考虑2020.01补丁方案,分类讨论(区别)如下:
1、单独使用KB2709630,system32\profsvc.dll_17514 被移除,system32\profprov.dll_17514 无变动
2、使用KB3125574(前置kb3020369),system32\profsvc.dll_17514 被移除;System32\profprov.dll升級到23403(安装KB3125574后,KB2709630 和 KB3021674 不再适用)
3、单独使用KB3021674,System32\profsvc.dll_17514 升级到 18706;System32\profprov.dll_17514 无变动
4、SP1 + KB3021674 + KB3125574(kb3020369),system32\profsvc.dll_18706 被移除;System32\profprov.dll升級到23403

【ESU + 非KB3125574】方案:
SP1 + KB4019990 + KB4474419 + KB5056456(ESU-SSU) + BypassESU-13f + KB4537820(ESU-2002)
----> 在这个组合下,system32\profsvc.dll_17514 被移除;System32\profprov.dll升級到24548,同时,KB2709630 和 KB3021674 不再适用(即不再被系统所识别)

KB2709630 和 KB3125574 的对比
共同点:移除了 system32\profsvc.dll;
不同点:KB3125574 升级了 System32\profprov.dll

非ESU方案中,
结论1:KB3125574方案无需安装KB2709630 及 KB3021674
结论2:非KB3125574方案,可考虑安装KB3021674

ESU方案中,
结论3:无论是否启用KB3125574,均无需安装 KB2709630 和 KB3021674

附注:贯穿整个测试过程,无论system32\profsvc.dll是否被移除,在winsxs文件夹中,均会新增profsvc.dll的升级副本(是的,被移除的system32\profsvc.dll会在这里升级)。因为这个位置的文件似乎不会被系统直接调用,就没做详细记录。


点评

KB3147071这个补丁是最难的,需要耗费相当于100个其它补丁的时间和精力,在这个补丁上我有非常大的收获,也发现月度汇总似乎漏掉了最关键的东西。 另外,所有补丁已经全部完工,真正的无限制,先测试几天看看效果  详情 回复 发表于 2025-7-4 09:08
首先十分感谢您的火眼金睛这个KB2709630确实是多余的,是我眼睛看花了,查看它的Package Details时漏掉了KB3021674,还以为仅仅被KB3125574和2020-02月度汇总KB4537820取代。 经过研究发现一个秘密:  详情 回复 发表于 2025-7-2 23:03
非常精彩和详实的分析,做这个是非常需要时间和精力的  详情 回复 发表于 2025-6-30 17:17
回复

使用道具 举报

发表于 2025-6-30 06:48:52 来自手机 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2025-6-30 09:04:58 | 显示全部楼层
本帖最后由 gwaijyut 于 2025-6-30 16:05 编辑

对KB2709630的补充说明
1、这个补丁兼容Win7-RTM,也就是Win7-SP0(6.1.7600.16385);
2、SP0安装KB2709630后,system32\profsvc.dll 升级到 17014,system32\profprov.dll 保持16385,两个文件在winsxs目录均有新版本添加。     
注意:如果在SP0中提前安装了WindowsUpdateAgent-7.6.exe,KB2709630将移除 system32\profsvc.dll

如果你的系统版本是6.1.7600.16385,有必要使用这个补丁。

回复

使用道具 举报

发表于 2025-6-30 16:29:09 | 显示全部楼层
wu733 发表于 2025-6-28 19:03
感谢提供详细的分析,等我有时间,我再研究一下这个KB2709630,它很有可能被KB3125574部分文件更新,然后 ...

“研究的重点是:它被KB3125574文件更新的部分,但此部分却又未被月度汇总KB4534310更新”

KB4534310 与 KB2709630 无关

KB2709630 这个包文件体积小,比较适合做分析
查阅其清单文件即可获取它包含的并行程序集列表。

KB3125574 对 KB2709630 做的是增量更新,它取代了KB2709630 ,但并不删除KB2709630在winsxs中创建的升级文件,同时,KB3125574 对 KB2709630程序集未升级(但依赖)的文件也做了升级
回复

使用道具 举报

 楼主| 发表于 2025-6-30 17:17:36 | 显示全部楼层
gwaijyut 发表于 2025-6-29 23:05
KB4534310与此无关。它既不取代KB3021674,也不取代KB2709630
如果只考虑2020.01补丁方案,分类讨论(区 ...

非常精彩和详实的分析,做这个是非常需要时间和精力的
回复

使用道具 举报

发表于 2025-6-30 17:24:00 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2025-6-30 17:52:09 | 显示全部楼层
感谢分享
回复

使用道具 举报

 楼主| 发表于 2025-7-2 23:03:56 | 显示全部楼层
本帖最后由 wu733 于 2025-7-3 02:31 编辑
gwaijyut 发表于 2025-6-29 23:05
KB4534310与此无关。它既不取代KB3021674,也不取代KB2709630
如果只考虑2020.01补丁方案,分类讨论(区 ...

首先十分感谢您的火眼金睛这个KB2709630确实是多余的,是我眼睛看花了,查看它的Package Details时漏掉了KB3021674,还以为仅仅被KB3125574和2020-02月度汇总KB4537820取代。

经过研究发现一个惊天的秘密
一、非KB3125574方案(截止2020.01.14),也即不打KB3125574(也不打KB2709630),最后安装月度汇总KB4534310
1、C:\Windows\System32下的两个profprov.dll、profsvc.dll被KB3021674更新为6.1.7601.22913,也即KB3021674取代KB2709630的两个dll文件
2、C:\Windows\winsxs下存在对应上面两个profprov.dll、profsvc.dll的旧版本和最新版本文件夹如下:
amd64_microsoft-windows-profsvc_31bf3856ad364e35_6.1.7601.17514_none_59d75cdc494c95ea   → 17514
amd64_microsoft-windows-profsvc_31bf3856ad364e35_6.1.7601.18706_none_59e41a604942c096   → 17514
amd64_microsoft-windows-profsvc_31bf3856ad364e35_6.1.7601.22382_none_5a132d2562a4e8c9   → 22382
amd64_microsoft-windows-profsvc_31bf3856ad364e35_6.1.7601.22913_none_5a5fe847626b2d73   → 22913
小结:这四个旧版本和最新版本文件夹下的profprov.dll、profsvc.dll,在未安装月度汇总KB4534310之前以及安装了月度汇总KB4534310之后都是类似增量存在(如上箭头所示),

二、KB3125574方案之一(截止2020.01.14,仅仅是在上面非KB3125574方案基础上,KB3125574便利汇总在前,月度汇总KB4534310在后),也不打KB2709630
1、C:\Windows\System32下的两个profprov.dll、profsvc.dll被新增的KB3125574便利汇总更新为6.1.7601.23403,也即KB3125574取代KB2709630、KB3021674的两个dll文件
2、C:\Windows\winsxs下存在对应上面两个profprov.dll、profsvc.dll的旧版本和最新版本文件夹如下:
amd64_microsoft-windows-profsvc_31bf3856ad364e35_6.1.7601.17514_none_59d75cdc494c95ea   → 17514
amd64_microsoft-windows-profsvc_31bf3856ad364e35_6.1.7601.18706_none_59e41a604942c096   → 17514
amd64_microsoft-windows-profsvc_31bf3856ad364e35_6.1.7601.22382_none_5a132d2562a4e8c9   → 22382
amd64_microsoft-windows-profsvc_31bf3856ad364e35_6.1.7601.22913_none_5a5fe847626b2d73   → 22913
amd64_microsoft-windows-profsvc_31bf3856ad364e35_6.1.7601.23403_none_5a6a97ed62633960   → 23403
小结:这五个旧版本和最新版本文件夹下的profprov.dll、profsvc.dll,在未安装月度汇总KB4534310之前是类似增量存在的(包括安装了KB3125574便利汇总也是如此,如上箭头所示),在安装了月度汇总KB4534310之后也是相同的类似增量存在!!???

三、KB3125574方案之二(截止2020.01.14,仅仅是在上面非KB3125574方案基础上,月度汇总KB4534310在前,KB3125574便利汇总在后),也不打KB2709630
1、C:\Windows\System32下的两个profprov.dll、profsvc.dll被新增的KB3125574便利汇总更新为6.1.7601.23403,也即KB3125574取代KB2709630、KB3021674的两个dll文件
2、C:\Windows\winsxs下存在对应上面两个profprov.dll、profsvc.dll的旧版本和最新版本文件夹如下:
amd64_microsoft-windows-profsvc_31bf3856ad364e35_6.1.7601.17514_none_59d75cdc494c95ea
amd64_microsoft-windows-profsvc_31bf3856ad364e35_6.1.7601.18706_none_59e41a604942c096
amd64_microsoft-windows-profsvc_31bf3856ad364e35_6.1.7601.22382_none_5a132d2562a4e8c9
amd64_microsoft-windows-profsvc_31bf3856ad364e35_6.1.7601.22913_none_5a5fe847626b2d73
amd64_microsoft-windows-profsvc_31bf3856ad364e35_6.1.7601.23403_none_5a6a97ed62633960
小结:情况出乎意料的复杂了,正在验证中......

终于豁然开朗,哈哈!!!
回复

使用道具 举报

 楼主| 发表于 2025-7-4 09:08:24 | 显示全部楼层
本帖最后由 wu733 于 2025-7-5 07:11 编辑
gwaijyut 发表于 2025-6-29 23:05
KB4534310与此无关。它既不取代KB3021674,也不取代KB2709630
如果只考虑2020.01补丁方案,分类讨论(区 ...

KB3147071这个补丁是最难的,需要耗费相当于100个其它补丁的时间和精力,在这个补丁上我有非常大的收获,也发现月度汇总似乎漏掉了最关键的东西。

另外,所有补丁已经全部完工,真正的无限制,先测试测试看看效果
回复

使用道具 举报

 楼主| 发表于 2025-7-5 07:45:39 | 显示全部楼层
无限制版已经制作完成,当然这只是一个起点,后面的路还远着呢
回复

使用道具 举报

发表于 2025-7-5 07:58:10 | 显示全部楼层
感谢楼主
回复

使用道具 举报

发表于 2025-7-5 09:40:34 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2025-7-5 09:59:44 | 显示全部楼层
合体以后,才发现winsxs里面还有23043的文件夹未删除,大家直接删除即可
回复

使用道具 举报

 楼主| 发表于 2025-7-5 10:15:20 | 显示全部楼层
具体是Windows6.1-KB3133977-x64这个文件夹的winsxs下的里面,有七个23403的子文件夹,删除吧
2025-07-05_101331.jpg
回复

使用道具 举报

发表于 2025-7-5 12:03:25 | 显示全部楼层
本帖最后由 gwaijyut 于 2025-7-5 13:55 编辑
wu733 发表于 2025-7-4 09:08
KB3147071这个补丁是最难的,需要耗费相当于100个其它补丁的时间和精力,在这个补丁上我有非常大的收获, ...

KB3147071 和其他补丁有什么不一样的地方吗?如果有,是不是指这个补丁涉及到第三方程序(Oracle)?还是说这是一个“补丁的补丁”?因为它的前置是KB3126587。事实上,说前置也不太合适:KB3126587会影响到Oracle连接,只好再出一个KB3147071做修补。

KB3147071 的程序集包含 194 个文件,这个补丁已被KB3125574官载替代。

单独安装 KB3125574 观察
以system32目录为例,KB3125574 升级了 KB3147071 在该目录涉及的 149 个文件,文件版本升级到24384(大部分);

单独安装 KB5061078(ESU) 观察,它更新了 KB3147071 包含的大部分程序集。
以system32目录为例,KB5061078 升级了 KB3147071 在该目录涉及的 147 个文件,文件版本升级到27766;不升级的文件有 2 个:mtxoci.dll_2001.12.8530.16385(x64)、mtxoci.dll_2001.12.8530.16385(x86)

我会在楼下大致谈一谈流程,不是很复杂,欢迎有兴趣的层友接棒跟进

点评

“ KB3147071 的程序集包含 194 个文件,这个补丁已被KB3125574官载替代。” 是的,KB3125574完全取代了KB3147071,但是月度汇总KB4534310又部分更新了这个取代版本 KB3147071的winsxs中的“ _microsoft-windows  详情 回复 发表于 2025-7-5 20:28
回复

使用道具 举报

发表于 2025-7-5 12:36:05 | 显示全部楼层
由于无权限上传图片,只能文字描述,唉!我尽量争取简单明了吧
涉及补丁:KB3147071、KB3125574

0.1、在D:\根目录,新建文件夹“版本跟踪”,切换到该目录;
0.2、新建空命令(文本)文件:“程序集清单.txt”、“获取清单文件版本号.cmd”;

1、获取 KB3147071 包含的"并行程序集"清单:h-t-t-p-://download.microsoft.com/download/b/a/3/ba3363d3-c3ba-4c4f-99a5-ca8275956a2e/3147071.csv
     提取 “x64 Windows 7 and Windows Server 2008 R2” 涉及的 194 个文件列表,将其复制到 D:\版本跟踪\程序集清单.txt

2、编辑 D:\版本跟踪\获取清单文件版本号.cmd,粘贴以下内容后保存:

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%f in (程序集清单.txt) do (
  4.     echo 正在搜索 %%f ...
  5.     wmic datafile where name="C:\\Windows\\System32\\%%f" get Name,Version 2>nul >> VersionInfo.txt || echo 未找到 %%f
  6. )
  7. endlocal
  8. pause
复制代码

-----至此,完成准备工作-----

3、在虚拟机中,安装官版Windows 7 x64 SP1,并拍摄快照“Original”
3.1、运行 D:\版本跟踪\获取清单文件版本号.cmd ,得到 VersionInfo.txt ,将此文件重命名为“Original.txt”;
3.2、安装 KB3147071,重启后,运行 D:\版本跟踪\获取清单文件版本号.cmd ,得到 VersionInfo.txt ,将此文件重命名为“KB3147071_sys32.txt”;
3.3、恢复快照Original,安装KB3125574,重启后,运行 D:\版本跟踪\获取清单文件版本号.cmd ,得到 VersionInfo.txt ,将此文件重命名为“KB3125574_sys32.txt”;


4、使用BeyondCompare或类似工具,对比三个文件。

至此,完成文件版本号的对比。以上示例,仅跟踪了C:\\Windows\\System32目录的文件版本变化。其他目录同理,修改批处理中的目录地址即可。


这是一个大概的流程,其余细节的处理以及注册表部分就不写了,比较多和杂。大差不差吧

点评

winsxs下的许多增量文件夹,在你一个补丁一个补丁安装的情况下,这些增量文件夹下的文件版本是不同的。 但是,如果你安装的是 “离线集成或封装” 的系统(非一个补丁一个补丁在线即时安装),此时你会发现系统的wi  详情 回复 发表于 2025-7-5 21:05
我没有采用先进生产力工具去分析。我就是简单的,实体机安装了非KB3125574方案的系统,虚拟机则安装了“ 在非KB3125574补丁方案基础上 ”,“ KB3125574在前,月度汇总KB4534310在后 ”,这么一个传统手法的KB312557  详情 回复 发表于 2025-7-5 20:06
回复

使用道具 举报

发表于 2025-7-5 14:28:01 | 显示全部楼层
在“合体版”中,建议楼主再检查一下吧

以Mtxoci.dll为例,KB3125574 将Mtxoci.dll更新为:6.1.7601.23403,对应winsxs目录:
C:\Windows\winsxs\amd64_microsoft-windows-com-dtc-oraclesupport_31bf3856ad364e35_6.1.7601.23403_none_4c296aef9821c0b6
C:\Windows\winsxs\x86_microsoft-windows-com-dtc-oraclesupport_31bf3856ad364e35_6.1.7601.23403_none_f00acf6bdfc44f80
1、合体版中,缺少这两个目录(及文件副本),需要补齐。按:一般的,system32、SysWOW64 中的 DLL 文件,在winsxs中均存在对应版本的副本(以及目录);
2、合体版中,Mtxoci.dll存在多个冗余副本,分别存储在多个以不同版本号区别命名的目录中(winsxs内)。均可删除。仅补齐以上两个目录即可。
     这些冗余目录分别是:19135、23338、23391

点评

“ 以Mtxoci.dll为例,KB3125574 将Mtxoci.dll更新为:6.1.7601.23403 ,合体版中,缺少这两个目录(及文件副本),需要补齐” 我是考虑未安装KB3125574的情况,这个6.1.7601.23403目录是不存在的,故不需要补齐  详情 回复 发表于 2025-7-5 19:40
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-6-8 15:08

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表