0

我一直在玩PowerShell远程处理,我遇到了一个问题,我无法解决。我有一个创建一个远程会话脚本,并设置一些变量后执行以下操作:Powershell远程会话外部命令执行

Invoke-Command -Session $remote_session -ScriptBlock $block -ArgumentList $args 

在块一切正常,当涉及到一个特定的线路,此时脚本挂起,除了罚款。相关线路:

& '.\external_command.exe' $argument_list 

当我登录到承载远程PowerShell会话,我可以看到在进程列表中external_command.exe电脑,但它没有做任何事情。有没有人有任何想法如何解决这个问题?

+0

您确定external_command.exe不是交互式的,或者可以在没有UI的情况下工作吗? – JPBlanc

+0

@JPBlanc:你的意思是什么可以在没有UI的情况下工作?当没有任何命令行参数的情况下启动时,它将启动一个GUI,但是当某些命令行参数存在时,它应该像任何其他控制台应用程序一样工作。 – davidk01

+4

根据[about_Remote_Troubleshooting](http://technet.microsoft.com/en-us/library/dd347642.aspx)某些本机Windows程序(例如具有用户界面的程序,提示输入的控制台应用程序以及控制台应用程序使用Win32控制台API的应用程序在Windows PowerShell远程主机中无法正常工作。 – JPBlanc

回答

1

我有远程执行安装程序的类似问题。作为一种解决方法,我现在首先通过powershell创建一个cmd批处理文件,然后运行这个批处理文件。类似这样的:

"c:\external_command.exe argument1" > c:\run.cmd 
&"c:\Run.cmd" |Out-Null 
+0

我发现PsExec,它看起来像大多数人使用它作为解决远程问题的解决方法。 – davidk01