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