如何标记或自定义二进制文件(例如安装程序)



如何使用自定义信息标记或修改.msi二进制文件?

如何为网站用户提供个人下载,以便他们不必在应用程序中再次登录?

一些网站提供个人/自定义/标记的安装程序下载。

当您运行该文件时,可执行对象已经知道您是谁并自动登录。

例如:

  • join.me 传递演示者角色的位置,会触发另一方的下载并自动将他们连接到正确的会议
  • Spotify有一个下载,不需要你登录。

您可以参数化 MSI 文件,以便可以根据通过msiexec.exe命令行传递给它的值使用不同的设置进行安装。您启动的安装可以根据您定义的msiexec.exe开关以静默方式或交互方式运行。

您可以使用Javascript或其他方式直接从网页自动生成有问题的命令行。您还可以使用更高级的选项自定义 MSI:转换

我不会重写所有内容,而是链接到以前的答案,该答案描述了如何使用在msiexec.exe命令行设置的公共属性或在安装过程中转换以修改 MSI 文件中的设置如何更好地利用 MSI 文件(有点长,但第一部分是与您的情况相关的所有内容)。

  1. 可以使用公共属性自动生成的示例命令行:
msiexec.exe /i "MySetup.msi" /L*v "%TMP%MyLog.log" SERIALKEY="123-456-789" EMAIL="myemail@somedomain.com" LOGINNAME="MyLogin" LOGINPASSWORD="MyPassword"

显然,通过命令行推送密码时要三思而后行。

  1. 可以使用转换自动生成的示例命令行:
msiexec.exe /i "MySetup.msi" /L*v "%TMP%MyLog.log" TRANSFORMS="MyTransform.mst"

MyTransform.mst中,您可以更改和覆盖整个 MSI 文件中的几乎任何内容 - 包括设置属性表中第一个示例的属性。

您可以使用MSI API 自动生成转换本身。有时间我会挖出一个更好的链接。

更新:有一整套示例 VBScripts 展示了如何以各种方式使用 MSI API。widiffdb.vbs展示了如何生成转换(以及其他内容)。还有一个专门用于创建转换的示例:wigenxfm.vbs

这些脚本应随 Visual Studio 和 SDK 一起安装。也许通过电子邮件向朋友(一个很有耐心的人!)安装好这个,如果你赶时间,让他们为你压缩,或者自己安装整个shebang。

MSI API可以使用Javascript访问,但是我遇到了一些笨拙的问题,这些问题有点太详细了,无法解释。VBScript 用于测试对象模型,因此似乎工作得更好。

应该可以从URL调用Windows安装程序。所以他们告诉我。祝你好运:-)。大约 17 年前我尝试过并放弃了它。也许现在更好。


还有一些类似的答案(这个问题不断出现):

  • 如何使用 SCCM 服务器推送带有参数的 MSI。
  • 如何更好地利用MSI文件。
  • 转换(mst)相对于MSI文件的优势。

最新更新