【发布时间】:2018-12-29 02:38:45
【问题描述】:
我的远程计算机中有一个 .msi 文件,该文件与本地计算机位于不同的域中。我可以使用 powershell 连接到远程机器,但是如何在那里安装 msi。安装过程有很多输入要给出,同时按下“下一步”,然后再次给出特定的输入和单选按钮等等。因此,它是一个交互式装置。在我的本地,我可以使用 [System.Windows.Forms.SendKeys] 来模仿键盘输入,但由于该进程将在远程机器的后台运行,我认为 SendKeys 不会起作用。 'psexec' 在这里不是一个选项,因为在我的远程机器中,我的 Powershell 不能包含 PSTools。有没有办法用 Invoke-Command 和 -ArgumentList 做到这一点??
如果有办法,那么我该如何选择是在特定字段中输入文本还是单击下一步按钮或单击应用程序窗口中的任何其他按钮??
【问题讨论】:
-
看看这个问题Silent installation of a MSI package的答案。您需要找到 msi 导出的公共属性。
-
感谢您的链接。我浏览了它并使用 Orca 查找与 msi 关联的所有属性。但是那里没有提到 msi 中的一些输入字段。在 msiexec 命令期间,是否有任何其他表我必须将它们设置为命令行参数? @Theo
-
也许你可以试试lessmsi ?
-
lessmsi 给了我与 Orca 相同的数据。有一些输入字段默认为空,我必须在安装过程中将数据放入其中。但是这些字段的属性名称并未在 Orca 和 lessmsi 的属性表中列出。我在这里错过了什么吗? @Theo
-
那么也许@JohnHeese 的回答可以帮到你。Determine if MSI/EXE supports certain flag/argument
标签: powershell powershell-remoting