2016-07-27 22 views
0

私の会社では、「Hyperion」というOracleベースの製品を使用しています。私はOracleが高校生を雇ってバッチファイルを書いてサービスを開始し停止すると信じています。私が持っている問題は、Powershell Remotingを使用して、制御された方法でいくつかのプロセスとサービスを停止するためにOracleが提供するStop_Hyperion.batというバッチファイルを実行することです。残念ながら私にとって、これは動作しません:インタラクティブ/リダイレクションが必要なリモート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コマンドを使ってサービスを停止しただけですが、バッチファイルには他のバッチファイル(タイムアウトも使用)の呼び出しが含まれています。非常に多くのネストされた呼び出しがあり、バッチファイルが何をしているかを正確に解明するのにかなり時間がかかります。

+0

「タイムアウト」を何もしないスクリプトや模擬実行ファイルに置き換えることはできますか? –

+0

いいえ、それは実用的ではありません。バッチファイルを修正しようとしていたら、PowerShellスクリプトを書いて、自分が行っていることをやるだけです。残念ながら、バッチスクリプトは単純ではなく、他のバッチファイルへのネストされた呼び出しがたくさんあり、それらの多くにはtimeoutコマンドも含まれています。 –

+0

'@()| C:\ Scripts \ Stop_Hyperion.bat'? – PetSerAl

答えて

0

バッチファイルを見て、ネイティブのPowerShell実装を置き換えて作成できます。

'Stop-Service'と 'Start-Service'は、Windowsで使用できる標準のコマンドレットです。

これは、提供されたバッチファイルの複雑さのいくつかを無視するかもしれませんが、それが完了したら、それで十分です。これは、サービスマネージャーからのサービスの停止と開始と同じです。

関連する問題