我如何确定 Windows 安装程序 (msiexec) 正在执行什么?

我如何确定 Windows 安装程序 (msiexec) 正在执行什么?

在推出新软件包后,我发现机器的 CPU 使用率很高。一个似乎非常活跃的进程是 msiexec,它实际上不应该运行。我在进程资源管理器中观察它,不时地我可以看到它启动新的进程,我可以判断这些进程与新软件有关……但这些进程结束得相当快。

有什么方法可以了解 Windows 安装程序当前正在执行的操作的具体信息?

答案1

我要补充一下 Process Explorer/Process Monitor 的建议 - 也从 Sysinternals 运行 FileMon 和 RegMon。您可以过滤/保存 msiexec 和相关进程的日志,导出到 csv 并获得对文件系统和注册表的完整操作列表。还可以与写入 Windows Installer 日志的内容进行比较/对比。

您还可以看看 Scott Willeke 的 Less Msiérables (LessMSI) 能为您做些什么......

http://lessmsi.activescott.com/

使用它来提取和更改 MSI 的 guid 和/或内容、重新打包、检查 MSI 包中的所有项目等。

答案2

得到进程监控来自 Sysyinternals(现在是 MS)。设置过滤器以仅监视 msiexec.exe。它将告诉您该进程正在执行的所有操作。

答案3

由于多种原因,Windows 安装程序可能会产生多个 msiexec.exe 实例。

首先,Windows Installer 具有用户界面序列 (可以通过静默运行安装来跳过)以及安装顺序.这两个序列的表称为安装UISequence安装执行序列由于 Windows Installer 允许“提升权利“在安装过程中,InstallExecuteSequence 将作为系统帐户运行。换句话说,如果您以 GUI 模式启动安装程序并以此方式启动安装,您通常会看到两个 msiexec.exe 进程。

此外,MSI 文件可以启动自定义操作 - 其中一些可以产生新进程(EXE 文件)。这些操作可能会触发更多 msiexec.exe 进程显示在任务管理器中。

Aaron Stebner 在这里有更好的解释:https://docs.microsoft.com/en-us/archive/blogs/astebner/more-info-about-how-msi-custom-actions-work-behind-the-scenes

还有一个链接:https://www.symantec.com/connect/blogs/multiple-msiexec-processes-running-during-installation

答案4

如果您可以控制安装包,则可以激活 msiexec 的日志记录。查看“Microsoft Windows 安装程序工具 Msiexec.exe 的命令行选项

相关内容