如何提取,修改和重建Cabinet文件?

时间:2014-06-04 09:41:17

标签: windows updates windows-server cab rebuild

我可以使用Windows工具 Expand.exe 成功提取Cabinet文件(.cab)。

Expand.exe foo.cab -F:*

我现在想修改一些提取的文件,并从目录结构重建一个Cabinet文件。

我找到了 MakeCab.exe CabArc.exe 并尝试了 MakeCab.exe ,但它无效。 (在不同的子目录中有几个具有相同名称的文件,MakeCab.exe不喜欢这样。但目录结构和文件来自一个Cabinet文件,所以它必须以某种方式工作。)

为了提取我还尝试了Linux工具 cabextract ,它为我提供了另一个输出,提取的文件/目录更少。 所以我假设Cabinet文件中的文件也被存档, Expand.exe 也提取它们。

那么如何提取,修改和重建Cabinet文件?

(Cabinet文件来自WSUS / Windows Update。)

5 个答案:

答案 0 :(得分:2)

您可以在cmd中使用makecab.exe制作cab文件,如果您有多个文件,则可以使用makecab文件指令将文件添加到.cab文件中。

makecab /f name.ddf

指令文件(.ddf)是

.Set CabinetNameTemplate=cabName.cab
.Set SourceDir=PathWhereYouWantToMakeCab
.Set Cabinet=on
.Set Compress=on

"file1name.txt"
"file2.name.txt"

答案 1 :(得分:1)

不支持修改Windows Update(WU)CAB。您从WU下载的CAB文件由Microsoft进行数字签名,如果签名无效,Windows将拒绝安装它们。此外,在没有特殊配置的情况下,WSUS服务器还将实现CAB文件的修改,并从上游服务器或MU重新下载新的副本。

答案 2 :(得分:1)

令我惊讶的是,似乎ACD的一个软件:ACDzip(现已停止的程序) CAN MODIFY .CAB文件。

答案 3 :(得分:0)

我建议MakeCab.exe是创建cabinet文件的最佳工具。 您应该重命名源文件。

答案 4 :(得分:0)

请参阅我对这个问题的回答: C#/.NET: Creating a CAB and adding files to it without an external library

但是,正如BenH在他的回答中指出的那样,生成的cab文件不能用作替代的WU cab文件。但是,如果您要访问的是WU cab文件中的文件和文件夹,例如DLL或驱动程序文件等,那么我描述的方法应该可以帮助您。

对于我链接的答案中的方法,请注意,CabMaker应用程序是MakeCab程序周围的GUI包装程序,可为您处理DDF文件创建和MakeCab命令行创建。下面是CabMaker GUI的外观。

enter image description here