使用 Powershell 在远程机器中安装交互式 msi
Installing interactive msi in Remote Machine with Powershell
我的远程计算机中有一个 .msi 文件,它与我的本地计算机位于不同的域中。我可以使用 powershell 连接到远程机器,但我如何在那里安装 msi。安装过程中有很多输入要连同按 'Next' 一起给出,然后再次给出特定的输入和单选按钮等等。因此它是一个交互式装置。在我的本地,我可以使用 [System.Windows.Forms.SendKeys] 来模仿键盘输入,但由于该过程将在远程机器的后台进行 运行,我认为 SendKeys 不会起作用。 'psexec' 在这里不是一个选项,因为在我的远程机器上我不能在我的 Powershell 中包含 PSTools。有没有办法用 Invoke-Command 和 -ArgumentList 来做到这一点??
如果有办法,我该如何依次选择是在特定字段中输入文本还是单击下一步按钮或单击应用程序中的任何其他按钮window??
我终于在名为 AutoIt 的自动化工具的帮助下解决了这个难题。该工具有自己的脚本语言,可以为 运行 特定应用程序创建 .exe 文件,并根据每个连续的 window 应用程序安装程序弹出执行相应的安装步骤。创建 .exe 后,我使用 Copy-Item 将它复制到我的远程计算机,或者您可以使用 robocopy,然后在 psexec 的帮助下远程调用 .exe。由于我之前对 psexec 的误解,它只需要在本地与 powershell 集成,因此它会自动创建自己的会话并与远程机器交互。这是 运行 远程计算机上的 .exe 的命令:-
psexec -i 2 -s -d \remote_machine_name -u Username -p Password C:\Path_to_exe\installer.exe
您实际上可以登录到远程计算机并在 GUI 中看到它正在发生。是的,显然您需要将要调用的 .msi 存在于远程计算机中,以便 .exe 可以在远程会话中本地完成其工作。
我的远程计算机中有一个 .msi 文件,它与我的本地计算机位于不同的域中。我可以使用 powershell 连接到远程机器,但我如何在那里安装 msi。安装过程中有很多输入要连同按 'Next' 一起给出,然后再次给出特定的输入和单选按钮等等。因此它是一个交互式装置。在我的本地,我可以使用 [System.Windows.Forms.SendKeys] 来模仿键盘输入,但由于该过程将在远程机器的后台进行 运行,我认为 SendKeys 不会起作用。 'psexec' 在这里不是一个选项,因为在我的远程机器上我不能在我的 Powershell 中包含 PSTools。有没有办法用 Invoke-Command 和 -ArgumentList 来做到这一点??
如果有办法,我该如何依次选择是在特定字段中输入文本还是单击下一步按钮或单击应用程序中的任何其他按钮window??
我终于在名为 AutoIt 的自动化工具的帮助下解决了这个难题。该工具有自己的脚本语言,可以为 运行 特定应用程序创建 .exe 文件,并根据每个连续的 window 应用程序安装程序弹出执行相应的安装步骤。创建 .exe 后,我使用 Copy-Item 将它复制到我的远程计算机,或者您可以使用 robocopy,然后在 psexec 的帮助下远程调用 .exe。由于我之前对 psexec 的误解,它只需要在本地与 powershell 集成,因此它会自动创建自己的会话并与远程机器交互。这是 运行 远程计算机上的 .exe 的命令:-
psexec -i 2 -s -d \remote_machine_name -u Username -p Password C:\Path_to_exe\installer.exe
您实际上可以登录到远程计算机并在 GUI 中看到它正在发生。是的,显然您需要将要调用的 .msi 存在于远程计算机中,以便 .exe 可以在远程会话中本地完成其工作。