使用Powershell的Invoke命令在远程计算机上安装.exe

我有一个.exe我想安装在Windows Server 2008计算机的大型农场。 我正在尝试使用Powershell远程处理。 我有这个在本地工作的命令:

invoke-command {& "N:\Temp\fortify_installer\HP-Fortify-3.20-Analyzers_and_Apps-Windows-x86.exe /s /f1N:\Temp\fortify_installer\response.iss"} 

但是当我添加-computername标志时,它似乎无处可去,安装程序永远不会在远程机器上运行。

我可以通过相同的命令启动notepad.exe并运行。 它与安装程序或其他东西有关吗? 我意识到这个问题的许多版本已经被问及我已经阅读过,但我仍然困惑,为什么这是行不通的。

invoke-command需要configuration远程计算机进行远程pipe理。 运行远程命令

如果您无法configuration远程pipe理,则可以使用Windows Management Instrumentation(WMI)进行远程执行。 使用PowerShell在远程计算机上执行程序

我假设您的脚本块中的命令是正确的。 Invoke命令是否完成,或者是否必须杀死命令? 尝试命令,并将结果返回到像这样的variables:

 $var = Invoke-Command -ComputerName <Computer> -ScriptBlock {& "N:\Temp\fortify_installer\HP-Fortify-3.20-Analyzers_and_Apps-Windows-x86.exe /s /f1N:\Temp\fortify_installer\response.iss"} 

一切看起来不错,除了我会添加-scriptblock parm清晰。 尝试将你的脚本块放在.PS1文件中,然后使用-filepath parm和刚才创build的ps1脚本的位置。

这很好,可能是一个交互式的会话问题,但你的invoke-command的结果应该给你。 否则,您可能需要查看该远程计算机上的事件日志,看看是否有任何东西出现。

你可以尝试以下几点:

  1. inputpssession来检查你的远程configuration是否工作

  2. 复制exe文件到N:(我假设这是服务器上的映射驱动器)到C:或某个本地磁盘并调整path后再次运行脚本? 双跳身份validation很有可能干扰您的脚本。