使用参数执行MSI的PowerShell脚本

时间:2017-09-22 10:09:04

标签: powershell windows-installer powershell-v3.0

enter image description here

如何为附加的屏幕截图编写PowerShell脚本?我正在尝试通过PowrShell运行和配置安装程序。

setup

1 个答案:

答案 0 :(得分:0)

无法保证这是可能的,因为可能(错误地)以拒绝此方式的方式创作Windows Installer程序包。但在许多情况下,只需找到您希望控制的设置中涉及的功能名称,属性名称和属性值即可。

请注意,为了达到100%的正确性,您必须考虑在正常UI序列期间设置的所有属性,或者查阅软件包作者提供的文档。

特征选择

您可以通过在特殊属性中列出其名称来指定要安装的功能:ADDLOCALREMOVEADDSOURCE等。要查找其名称,请参阅文档或检查.msi文件的Feature table

请注意,这样做可以避免作者为确保正确选择功能而做出的尝试(对于某些正确的含义),并且还会设置属性Preselected,这为作者提供了一种调整方法在这种情况下的行为。

配置

Windows Installer对话框全部在Dialog tableControl table中定义,但结果也可以通过ControlEvent table和自定义操作进行扩充。在常见情况下,您可以查看Control表以标识与您要设置的值关联的Property name。例如,具有属性值TESTPROP的Edit控件将属性TESTPROP设置为您在其关联的编辑框中键入的内容。复选框交叉引用CheckBox table以获取它们将设置或清除的值(通常只是 1 )等。单选按钮组交叉引用RadioButton table作为其值。

有时可以通过控件设置中间值,然后通过控件事件或顺序自定义操作调用的自定义操作调整其最终目标属性。

替代

您尝试自动化而不是进入安装包的内部内容,而是通过其作者提供的文档更加安全。如果缺少这个,你可以找到一个工具来帮助你生成一个响应变换(更容易使用,但更容易),这个工具可以帮助你探索我上面描述的表格(更难,但是尽可能完整地理解你的),或者您可以创建和检查在安装包时使用您想要的设置(中间路径)创建的详细日志文件。

日志文件将包含您需要在命令行上设置的所有属性和功能名称,但可能包含您不需要设置的几个属性和功能名称。弄清楚哪些仍然是困难的。

结束结果

最后,您将得到一个命令行,其中包括以下部分内容。我用斜体来表示我不知道名字或值的部分;那些应该用正确的值代替。我还添加了括号来解释每个部分的作用;那些应该省略。为清晰起见,我在多条屏幕线上打破了命令行。

msiexec / i the.msi / qn (静默安装 the.msi
ADDLOCAL =“所需,功能,此处(选择这些功能)
REMOVE =“不受欢迎的功能,此处(可选;明确取消选择这些功能)
SOMEPROP1 =“ some value1 (指定一个或多个属性的值)
SOMEPROP2 =“ some value2
SOMEPROP3 =“ some value3 (根据需要指定更多属性)

请注意,属性名称几乎总是大写,可能包含下划线。功能名称可以是大小写混合但不包含空格。属性值可以是任何值,如果它们包含空格或其他特殊字符,则必须引用它们。

如果计划在多个系统中使用此功能,请注意目标系统中的差异可能会影响要使用的正确命令行。这是相对罕见的;当它发生时,可能是由于不同版本的Windows或可选依赖项的可用性不同。