我的远程计算机中有一个.msi文件,该文件与本地计算机不在同一域中。我可以使用powershell连接到远程计算机,但是如何在其中安装msi。安装过程中将提供很多输入,同时按下“下一步”,然后再次给出特定的输入和单选按钮等等。因此,它是一个交互式安装。在本地,我可以使用[System.Windows.Forms.SendKeys]来模仿键盘输入,但是由于该过程将在远程计算机的后台运行,因此我认为SendKeys无法正常工作。而且这里没有'psexec'选项,因为在我的远程计算机中我无法在Powershell中包含PSTools。有什么方法可以使用Invoke-Command和-ArgumentList?
如果有办法,那么我该如何依次选择是在特定字段中输入文本还是单击下一步按钮或单击应用程序窗口中的任何其他按钮?
答案 0 :(得分:0)
我终于借助名为AutoIt的自动化工具解决了这个难题。该工具具有自己的脚本语言,可以创建.exe文件以运行特定的应用程序,并根据应用程序安装程序弹出的每个连续窗口执行相应的安装步骤。创建.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可以在远程会话中本地完成其工作。