我的公司使用一種名爲「Hyperion」的基於Oracle的產品。我相信Oracle聘請一些高中學生編寫批處理文件來啓動和停止服務。我遇到的問題是我想使用Powershell Remoting來執行一個名爲「Stop_Hyperion.bat」的批處理文件,該文件由Oracle提供,用於以受控方式停止多個進程和服務。不幸的是,我這不工作:在需要交互/重定向的遠程PowerShell會話中執行批處理
$Session = New-PSSession -ComputerName HyperionServer1 -Credential $PSCredential
Invoke-Command -Session $Session -ScriptBlock {C:\Scripts\Stop_Hyperion.bat}
它執行批處理文件,但批處理文件包含一個名爲「超時」命令生成以下錯誤:
ERROR: Input redirection is not supported, exiting the process immediately.
+ CategoryInfo : NotSpecified: (ERROR: Input re...ss immediately.:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
+ PSComputerName : HYPERIONSERVER1
如果我使用好舊的PSExec,除非我使用桌面交互式會話的-i選項,否則我會得到相同的錯誤。有沒有辦法用PSSession完成這種交互式會話?
我已經修改了批處理文件或只使用PowerShell命令停止服務,但批處理文件包含調用其他批處理文件(也使用超時),其中包含更多的電話。有太多的嵌套調用,需要一段時間才能精確地解開批處理文件正在做的事情。
也許你可以用一個腳本或模擬可執行文件替換'超時',什麼都不做? –
不,這不實際。如果我要修改批處理文件,我會繼續編寫powershell腳本來完成他們正在做的事情。不幸的是,批處理腳本並不簡單,有很多嵌套的調用其他批處理文件,其中許多還包含timeout命令。 –
'@()| C:\ Scripts \ Stop_Hyperion.bat'? – PetSerAl