使用参数执行 MSI 的 PowerShell 脚本
PowerShell script to execute MSI with parameters
如何为附加的屏幕截图编写 PowerShell 脚本?我正在尝试 运行 并通过 PowrShell 配置安装程序。
不能保证这将是可能的,因为有可能(错误地)以拒绝这种方式编写 Windows 安装程序包。但在很多情况下,找到您希望控制的设置中涉及的特征名称、属性 名称和 属性 值就足够了。
请注意,要接近 100% 的正确性,您必须考虑在正常 UI 序列中设置的所有属性,或查阅包作者提供的文档。
特征选择
您可以通过在特殊属性中列出它们的名称来指定将安装哪些功能:.msi 文件的 ADDLOCAL, REMOVE, ADDSOURCE, etc. To find their names, consult documentation, or examine the Feature table。
请注意,这样做可以避免作者为确保适当的 select 功能(对于适当的某些含义)所做的尝试,并且它还会设置 属性 Preselected,这为作者提供了一种在这种情况下调整行为的方法。
配置
Windows 安装程序对话框的值都在 Dialog table and Control table, but the results can also be augmented by the ControlEvent table and custom actions. In the common case you can look at the Control table to identify the Property name associated with the values you wish to set. For example, an Edit control with Property value TESTPROP will set the property TESTPROP to whatever you type into its associated edit box. Check boxes cross reference the CheckBox table for the value they will set or clear (often simply 1), etc. Radio button groups cross reference the RadioButton table 中定义。
有时中间值可能由控件设置,然后它们的最终目标属性由控件事件调用的自定义操作或顺序自定义操作调整。
备选方案
与其深入研究您试图自动化的安装包的内部结构,来自其作者的文档通常更安全。如果缺少它,您可以找到一个工具来帮助您生成响应转换(更容易使用,但容易出错),一个帮助您探索我上面描述的表格的工具(更难,但尽可能完整地理解),或者您可以创建并检查在使用您想要的设置安装包时创建的详细日志文件(路中间)。
日志文件将包括您需要在命令行上设置的所有属性和功能名称,但可能包括一些您不需要设置的属性和功能名称。弄清楚哪个是哪个仍然很困难。
最终结果
最后,您将得到一个包含以下部分的命令行。我使用斜体来表示我不知道其名称或值的部分;这些应该用正确的值代替。我还添加了括号来解释每个部分的作用;那些应该被省略。为了清晰起见,我将命令行跨多个屏幕行。
msiexec /i the.msi /qn(安装the.msi默默地)
ADDLOCAL="所需功能,此处"(select 这些功能)
REMOVE="不需要的功能,此处"(可选;明确select这些功能)
SOMEPROP1="some value1"(指定一个或多个属性的值)
SOMEPROP2="一些值2"
SOMEPROP3="some value3"(根据需要指定更多属性)
请注意 属性 名称几乎总是大写并且可能包含下划线。功能名称可以混合大小写,但不包含空格。 属性 值可以是任何值,如果包含空格或其他特殊字符,则必须用引号引起来。
如果您打算跨多个系统使用它,请注意目标系统的差异可能会影响正确使用的命令行。这种情况比较少见;当它发生时,可能是由于 Windows 的不同版本或可选依赖项的可用性不同。
如何为附加的屏幕截图编写 PowerShell 脚本?我正在尝试 运行 并通过 PowrShell 配置安装程序。
不能保证这将是可能的,因为有可能(错误地)以拒绝这种方式编写 Windows 安装程序包。但在很多情况下,找到您希望控制的设置中涉及的特征名称、属性 名称和 属性 值就足够了。
请注意,要接近 100% 的正确性,您必须考虑在正常 UI 序列中设置的所有属性,或查阅包作者提供的文档。
特征选择
您可以通过在特殊属性中列出它们的名称来指定将安装哪些功能:.msi 文件的 ADDLOCAL, REMOVE, ADDSOURCE, etc. To find their names, consult documentation, or examine the Feature table。
请注意,这样做可以避免作者为确保适当的 select 功能(对于适当的某些含义)所做的尝试,并且它还会设置 属性 Preselected,这为作者提供了一种在这种情况下调整行为的方法。
配置
Windows 安装程序对话框的值都在 Dialog table and Control table, but the results can also be augmented by the ControlEvent table and custom actions. In the common case you can look at the Control table to identify the Property name associated with the values you wish to set. For example, an Edit control with Property value TESTPROP will set the property TESTPROP to whatever you type into its associated edit box. Check boxes cross reference the CheckBox table for the value they will set or clear (often simply 1), etc. Radio button groups cross reference the RadioButton table 中定义。
有时中间值可能由控件设置,然后它们的最终目标属性由控件事件调用的自定义操作或顺序自定义操作调整。
备选方案
与其深入研究您试图自动化的安装包的内部结构,来自其作者的文档通常更安全。如果缺少它,您可以找到一个工具来帮助您生成响应转换(更容易使用,但容易出错),一个帮助您探索我上面描述的表格的工具(更难,但尽可能完整地理解),或者您可以创建并检查在使用您想要的设置安装包时创建的详细日志文件(路中间)。
日志文件将包括您需要在命令行上设置的所有属性和功能名称,但可能包括一些您不需要设置的属性和功能名称。弄清楚哪个是哪个仍然很困难。
最终结果
最后,您将得到一个包含以下部分的命令行。我使用斜体来表示我不知道其名称或值的部分;这些应该用正确的值代替。我还添加了括号来解释每个部分的作用;那些应该被省略。为了清晰起见,我将命令行跨多个屏幕行。
msiexec /i the.msi /qn(安装the.msi默默地)
ADDLOCAL="所需功能,此处"(select 这些功能)
REMOVE="不需要的功能,此处"(可选;明确select这些功能)
SOMEPROP1="some value1"(指定一个或多个属性的值)
SOMEPROP2="一些值2"
SOMEPROP3="some value3"(根据需要指定更多属性)
请注意 属性 名称几乎总是大写并且可能包含下划线。功能名称可以混合大小写,但不包含空格。 属性 值可以是任何值,如果包含空格或其他特殊字符,则必须用引号引起来。
如果您打算跨多个系统使用它,请注意目标系统的差异可能会影响正确使用的命令行。这种情况比较少见;当它发生时,可能是由于 Windows 的不同版本或可选依赖项的可用性不同。