2011-09-04 63 views
4

我正在创建一个可以运行MSI和EXE的自动更新程序。这些MSI/EXE不是我自己的。如果存在,我想使用任何无人值守/无提示安装选项。是否有某种方法可以确定MSI/EXE是否具有某种无人参与的安装支持,如果有,请获取正确的参数,以便在运行时将它传递给文件?我知道,默认情况下'/ quiet'是静默安装选项,但我也对EXE和任何可能定制此选项的MSI很好奇。确定MSI/EXE是否支持某些标志/参数?

这个问题 - detect msi parameters for unattended install - 是类似的,但答案中的链接被打破,我不知道我会做什么。

谢谢。

+0

以何种方式被打破他们?错误?事情没有显示出来?在你的问题中指定这可能会让人们帮你解开它们。 –

+0

这个链接 - http://www.scriptbox.at.tt/index.php?search=Get%20MSI-File%20properties.vbs&site=1 - 那是一个脚本被破坏的答案。 – Chad

回答

1

如果是MSI,那么参数是标准的,您可以通过msiexec /?或查看the docs on MSDN获得选项列表。

没有办法检测它支持的任意EXE的选项,如果有的话。尝试从供应商处找到文档,或者尝试使用/?开关...

+0

好吧,我想不出有什么方法可以轻松搞清楚可执行文件是否具有某些功能,但值得一提。我不知道供应商是谁,所以我不能只读他们的文档。谢谢。 – Chad

+0

@Chad你可以用文本编辑器试着在exes中查看字符串。通常你可以看到所有的开关:程序需要这些字符串来比较参数。如果.exe是Unicode,则会在每个字符之间看到“空格”。这与逆向工程相似,但它有时可能有所帮助。 –

14

只需打开日志记录即可运行安装程序,它会显示特定MSI接受的所有可能参数。

例如:在整个安装和LOGFILE.TXT msiexec /log logfile.txt /i installer.msi

运行会告诉你过得去参数“属性(S)”或“属性(C)”,在全部大写的名字。

来源: http://www.codeproject.com/Articles/16767/How-to-Pass-Command-Line-Arguments-to-MSI-Installe

+0

与其他所有脚本和其他答案中的现在死链接程序相比,它非常简单直接。谢谢! –