公司动态
不重装软件也能取出安装包里的文件:lessmsi 提取 MSI 文件 3 分钟入门指南
不重装软件也能取出安装包里的文件lessmsi 提取 MSI 文件 3 分钟入门指南【免费下载链接】lessmsiA tool to view and extract the contents of an Windows Installer (.msi) file.项目地址: https://gitcode.com/gh_mirrors/le/lessmsi周一早上九点小周打开电脑准备处理昨天没做完的报表。结果刚点开内部 OA 客户端屏幕上就弹出一行刺眼的错误某个动态链接库文件已损坏程序无法启动。她翻遍了备份盘发现原始安装包.msi 文件还在可问题是——她只想找回那一个损坏的文件难道要把整套软件再装一遍这个场景是不是很眼熟今天要介绍的 lessmsi就是专门解决这类安装包只想要一两个文件难题的免费开源工具它同时提供图形界面和命令行两种操作方式让查看与提取 MSI 安装包内容变成一件三分钟就能搞定的小事。一、周一的系统事故她只想要一个文件小周的故事绝非个例。系统管理员要恢复被误删的系统组件、开发人员要研究第三方软件的安装包结构、普通用户想从安装包里偷一张模板或配置文件……这些需求的共同点只有一个我们需要的不是软件本身而是藏在安装包里的某个文件。在遇到 lessmsi 之前小周的第一反应是上网搜如何解压 MSI 文件。结果搜出来的方法五花八门有的说改扩展名用压缩软件打开结果打不开有的说用系统自带的 msiexec 静默安装结果装了一堆不想要的东西。折腾了半个多小时一无所获。这个痛点正是 lessmsi 存在的意义。它是一款专门针对 Windows Installer.msi文件设计的查看与提取工具不安装、不写注册表、不改系统设置纯粹打开看、挑着拿。二、先搞明白MSI 安装包到底是个什么箱子工欲善其事必先利其器。在使用 lessmsi 之前我们得先理解一件事MSI 文件不是普通的压缩包。普通压缩包比如 zip里就是一堆文件解压就完事。而 MSI 是 Windows Installer 的安装数据库它内部由多张结构化表组成哪份文件装到哪个目录、属于哪个组件、对应哪个注册表项、需要什么版本的运行库……这些信息全以数据库表格的形式存在。所以想从 MSI 里取文件不能靠简单的解压工具必须有人帮你读懂这套数据库结构。lessmsi 干的就是这件事它解析 MSI 内部数据库把文件与目录的对应关系还原出来再按你的要求提取。换句话说它把拆安装包这件技术活翻译成了人人能看懂的操作。三、lessmsi 是谁为什么新手也能放心用lessmsi 是 GitHub 上一个持续维护多年的开源项目它还有个更俏皮的名字叫 Less MSIérables。它的核心定位非常单纯查看和提取 Windows Installer.msi文件的内容。基于 .NET Framework 4.8 开发对 Windows 10 及更高版本都有良好支持。从源码结构上看项目分成清晰的三块src/LessMsi.Core/——核心引擎负责读取 MSI 数据库、调度文件提取src/LessMsi.Cli/——命令行接口适合脚本化、批量操作src/LessMsi.Gui/——图形界面适合可视化浏览和按需勾选。对新手来说最友好的一点是它完全免安装。下载压缩包解压后直接双击运行不向系统里塞任何后台服务或开机自启项。用完了删掉文件夹干干净净。四、出发前三分钟拿到并启动工具小周决定试试。第一步自然是拿到工具本身前往项目发布页下载最新的压缩包zip 格式解压到任意目录如果你更信任从源码编译的仪式感也可以把仓库克隆到本地自己构建git clone https://gitcode.com/gh_mirrors/le/lessmsi双击目录里的 lessmsi.exe。什么参数都不带直接运行就会自动打开图形界面当然也可以在命令行里随时呼出。到这里准备工作就完成了。别小看免安装三个字在讲究纯净的公司电脑上不需要管理员授权就能运行的工具往往才是真正能用的工具。五、第一回合用命令行 30 秒定位目标文件小周是个急性子她决定先试试传说中效率最高的命令行。打开命令提示符切到 lessmsi 所在目录第一步先看看安装包里到底有哪些文件lessmsi l -t File C:\安装包\OA客户端.msil是列出list的意思-t File表示列出 File 表。命令执行后屏幕上会以 CSV 格式输出一份文件清单——文件名、大小、版本等信息一目了然。很快她就锁定了那个损坏的 DLL 的名字。接下来提取整个安装包到指定目录lessmsi x C:\安装包\OA客户端.msi C:\extracted如果只想提取某一个文件把文件名追加在最后就行lessmsi x C:\安装包\OA客户端.msi C:\extracted MyApp.dll小提示x命令不写输出目录时会在当前目录下自动创建以安装包命名的文件夹省得手动建目录。屏幕上一行行滚动出提取进度前后不到半分钟那个损坏的 DLL 已经安静地躺在了目标文件夹里。小周复制过去替换掉坏文件OA 客户端重新启动一切恢复正常。全程没有安装任何软件没有重启电脑。六、第二回合图形界面里看着选命令行虽快但看不见摸不着的感觉让一些新手心里没底。没关系lessmsi 的图形界面就是为这种人准备的。双击 lessmsi.exe 打开主窗口通过菜单打开目标 MSI 文件会看到三个标签页默认停在Extract Files文件提取页图lessmsi 的文件提取页逐行展示安装包内的文件与目标目录、大小、版本。在这个页面里安装包内部结构被翻译成了一目了然的表格文件叫什么、会被装到哪个目录、占多大空间、什么版本全部列得清清楚楚。需要什么就勾什么窗口底部还有Select All全选和Unselect All取消全选两个按钮选好之后点Extract提取按钮选中的文件就会被释放到指定目录。小周觉得对不熟悉命令行的同事来说这种看得见的选择比背参数友好太多了——尤其是只需要一两个文件时勾选比敲名字更不容易出错。七、小进阶覆盖、平铺、重命名三种提取模式怎么选用了几次之后小周发现x命令还有一个隐藏的家族。面对不同的使用场景提取模式其实有四种用不同的子命令触发子命令行为适合场景x按安装包原始目录结构提取日常默认还原真实布局xo提取并覆盖目标目录中同名文件重复提取、更新已提取内容xfo平铺提取不保留目录层级同名覆盖只要文件、不要目录结构xfr平铺提取同名文件自动改名加序号多个子目录出现同名文件时防冲突举例来说假如你要把某安装包里所有 DLL 都摊平到一个文件夹里方便批量扫描就用xfo如果担心不同目录下的同名 DLL 互相覆盖就用xfr它会自动给重复文件加上序号后缀。选对了模式很多提取出来的文件布局不对的问题根本不会发生。八、最省事的日常姿势右键菜单一键提取命令行要用图形界面要开有没有更懒的办法有。lessmsi 支持与 Windows 资源管理器深度集成启用之后在任意 .msi 文件上点右键菜单里直接多出一项Extract Files图启用集成后在资源管理器中右键 MSI 文件即可一键提取。启用方法也很简单打开 lessmsi在编辑菜单里找到 Preferences 偏好设置勾选Add Shortcut Item to Explorer即可想移除时再勾掉下面那一项图偏好设置窗口一键添加或移除资源管理器右键提取入口。从此以后日常取文件根本不需要先打开任何程序——右键、提取、选目录三步搞定。小周把这项功能推荐给了整个部门据说当天下午就有三个同事来问她这个右键提取是怎么装上的。九、顺手解剖安装包表格视图与摘要信息提取文件只是 lessmsi 的一半功力。它还有一项让技术人员爱不释手的本事直接查看 MSI 内部的数据库表格。切到Table View标签页就能看到安装包里的组件表、属性表等原始数据每个组件对应哪个 GUID 一目了然图Table View 标签页展示 MSI 组件与 GUID 的对应关系。这有什么用对做软件打包、做部署方案的工程师来说分析安装包的组件依赖关系、排查某个组件为什么没装上靠的就是这张表。命令行里同样能查lessmsi l -t Component C:\安装包\OA客户端.msi而Summary标签页则展示安装包的元数据——标题、代码页、版本、修订号等摘要信息相当于看一眼这个安装包的身份证图Summary 标签页展示 MSI 文件的标题、代码页、版本等摘要字段。对于只想取文件的普通用户这两个页面可以跳过但对于需要深度分析安装包的场景它们就是免费的安装包显微镜。十、新手最容易踩的 4 个坑用的人多了踩坑的故事也多。小周把这些坑总结成了一份避雷清单坑 1把 .msi 当压缩包改扩展名硬解压。MSI 不是 zip改扩展名只会得到一堆乱码。正确姿势是交给 lessmsi 这类专用工具解析。坑 2分不清提取和安装。提取只是把文件复制出来不会写注册表、不会装服务、不会改系统设置而双击 .msi 默认是安装。想只拿文件不安装请务必用提取工具。坑 3重复提取时覆盖了之前的旧文件。多次提取到同一目录同名文件可能被悄悄覆盖。要么给每个安装包建独立目录要么用xfr让同名文件自动改名。坑 4以为工具只能处理 .msi。实际上 lessmsi 同样能查看和提取 MSPWindows 补丁包等内容测试目录里就躺着不少 .msp 样例。遇到补丁包别忘了它也能出手。十一、常用命令速查表给懒得翻上文的朋友这里是一张可以随时抄作业的命令速查表目的命令列出安装包 File 表lessmsi l -t File 包.msi列出安装包组件表lessmsi l -t Component 包.msi提取全部文件lessmsi x 包.msi 输出目录提取指定文件lessmsi x 包.msi 输出目录 文件1 文件2平铺提取并覆盖lessmsi xfo 包.msi 输出目录平铺提取并防重名lessmsi xfr 包.msi 输出目录打开图形界面lessmsi或lessmsi o查看版本lessmsi v记住一个原则就够了x打头的都是提取l打头的是查看什么都不带就是图形界面。十二、高频疑问快答问用 lessmsi 提取文件安全吗它只读取 MSI 内容并复制文件不执行安装逻辑、不写注册表。不过老规矩提取出来的文件建议先过一遍杀毒扫描再使用。问几个 GB 的大型安装包会不会很慢lessmsi 采用流式处理内存占用平稳大型安装包也能跑。追求速度的话命令行模式通常比图形界面更轻快。问支持哪些 Windows 版本基于 .NET Framework 4.8 构建面向微软当前支持周期内的 Windows 系统Windows 10 及更高版本都能正常使用。问只能提取文件吗还能干嘛除了提取还能浏览内部数据库表格、查看摘要信息、把文件列表导出成 CSV相当于一个多合一的安装包浏览器。十三、写在最后工具的意义是少折腾回到小周的故事。那个周一的上午她前后只花了不到十分钟就解决了看起来要重装整个软件的大问题。后来她总结说很多电脑问题之所以让人崩溃不是因为问题本身难而是因为缺少一件顺手的小工具。lessmsi 就是这样的工具。它免费、开源、免安装既照顾了想点鼠标的新手也满足了要写脚本的高手。下次当你面对一个 .msi 安装包、却只想要里面的某一个文件时别再急着点下一步安装了——把 lessmsi 拿出来三分钟搞定。【免费下载链接】lessmsiA tool to view and extract the contents of an Windows Installer (.msi) file.项目地址: https://gitcode.com/gh_mirrors/le/lessmsi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考