如何确定Windows Installer(msiexec)在做什么?


9

推出新的软件包后,我发现计算机上的CPU使用率很高。一个似乎非常活跃的进程是msiexec,它实际上不应该运行。我正在流程浏览器中观看它,时不时地看到它启动了新流程,我可以说这些流程与新软件有关...但是这些流程很快结束了。

有什么方法可以获取有关Windows Installer当前最新功能的一些详细信息?


在线程中查看我的答案。如果弹出msiexec.exe,然后很快结束,则Windows Installer引擎可能已在要安装的MSI内运行自定义操作。换句话说,一段自定义代码可以正确设置应用程序。
斯坦·奥斯穆尔(SteinÅsmul)

Answers:


7

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

您还可以看看Scott Willeke的LessMsiérables(LessMSI)可以为您做什么...

http://lessmsi.activescott.com/

用它来提取和更改MSI的指南和/或内容,重新打包,检出MSI包中的所有项目,等等。


2
Process Monitor将FileMon和RegMon的所有功能封装到一个应用程序中。
EBGreen

RegMon / Filemon将在本月底停产。
dmoisan

5

从Sysyinternals(现在为MS)获取Process Monitor。将筛选器设置为仅监视msiexec.exe。它将告诉您该过程正在执行的所有操作。


3

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

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

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

亚伦·斯特布纳(Aaron Stebner)在这里有一个更好的解释:http : //blogs.msdn.com/astebner/archive/2005/03/02/384088.aspx

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.