MSI 文件的管理提取可以执行注册表和/或系统范围的更改吗?

MSI 文件的管理提取可以执行注册表和/或系统范围的更改吗?

我总是得到 MSI(或基本上是 MSI 的安装 EXE)文件,但有一半的时间它们实际上并不需要进行安装。

微软可能是最大的来源之一——几乎每次我想要下载一个小源代码示例时,它都有一个 MSI,如果你安装,通常只有三个文件。

为了三个文件,我宁愿不进行安装并将其添加到添加/删除程序中,谁知道还有什么(虽然我确信它不会那么糟糕)!

因此,我总是使用以下命令:

MSIEXEC /a <filename.msi> /qb TARGETDIR=<directory name>

现在,它工作正常,我从来没有遇到过问题...然而,我只是在浏览 Technet 上的一些文章,发现了以下关于管理安装

显然,MSI 文件可以有两个序列:AdminUISequence TableAdminExecuteSequence Table

我不太担心,AdminUISequence Table因为它指出“如果用户界面级别设置为基本 UI 或无 UI,则安装程序将跳过此表中的操作”,这就是/qb我使用的开关所做的。

然而,针对的却没有任何类似记载AdminExecuteSequence Table

我意识到许多编写 MSI 文件的人只是为了一个最终用户而编写,甚至可能根本不触及管理员安装选项,但是,他们是否有可能设置会影响系统的项目,如果可以,是否有一种万无一失的提取方法?

我已经使用7-zip,然而尽管它位于“支持”页面上,但 MSI 支持却不足……嗯……简直糟透了。它丢失了文件名,而且通常毫无用处。他们有一个已关闭的 bug三年前没有任何理由或解决办法,而且我打开论坛帖子但还没有收到回复。

如果可以的话,我真的不想安装任何附加程序,只是想听听大家对此的看法。

谢谢。

编辑——还应该说,我打开了 UAC 运行,并且在执行 MSIEXEC 操作时从未出现过提升提示,所以我猜我从未进行过系统范围的更改,但是,我仍然很好奇是否有可能...如果更改(即使只是对用户)是可能的,我会在本地/虚拟机中执行此操作,而不是在服务器或重要位置执行此操作!

答案1

与所有 Microsoft 产品一样,一切皆有可能,没有什么是容易的。管理员安装序列确实可以改变系统,只需插入一些自定义操作,基本上就可以做任何你想做的事情。不过我不会太担心,很少有人会费心去对这个序列做任何事情。如果您真的想小心谨慎,请在虚拟机上运行管理员安装,或者在运行之前查看管理员序列中是否有任何自定义操作。

大多数情况下,您不会以管理员权限运行管理安装,因此该过程只能更新 HKCU 以及普通用户可以访问的用户配置文件和位置。

答案2

他们通常不会这样做,但他们当然可以。

毕竟,他们已经通过在系统上转储文件和快捷方式来更改系统,因此做更多的事情是小菜一碟。

答案3

我发现这个工具以前在提取 exe 和 msi 的内容时很有用。 http://legroom.net/software/uniextract

相关内容