我有一个.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的结果应该给你。 否则,您可能需要查看该远程计算机上的事件日志,看看是否有任何东西出现。
你可以尝试以下几点:
inputpssession来检查你的远程configuration是否工作
复制exe文件到N:(我假设这是服务器上的映射驱动器)到C:或某个本地磁盘并调整path后再次运行脚本? 双跳身份validation很有可能干扰您的脚本。