私の会社では、「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コマンドを使ってサービスを停止しただけですが、バッチファイルには他のバッチファイル(タイムアウトも使用)の呼び出しが含まれています。非常に多くのネストされた呼び出しがあり、バッチファイルが何をしているかを正確に解明するのにかなり時間がかかります。
「タイムアウト」を何もしないスクリプトや模擬実行ファイルに置き換えることはできますか? –
いいえ、それは実用的ではありません。バッチファイルを修正しようとしていたら、PowerShellスクリプトを書いて、自分が行っていることをやるだけです。残念ながら、バッチスクリプトは単純ではなく、他のバッチファイルへのネストされた呼び出しがたくさんあり、それらの多くにはtimeoutコマンドも含まれています。 –
'@()| C:\ Scripts \ Stop_Hyperion.bat'? – PetSerAl