2011-12-30 34 views
2

私のJavaサーバーから別のユーザーの下でCSharpプロセスを実行します。 私はPSExecを使ってこれを行います - それは私のPCでうまくいきますが、 "本当の"サーバーでそれを行うと、プロセスは直ちにクラッシュします。 (それはCSHARPアプリも起動しないようです - 私は最初のコマンドとしてファイルに何かを印刷しようとしましたが、何も書かれていませんでした)。javaからPSExecを実行しても動作しません

Javaプロセスを実行するユーザーと他のユーザーは、両方とも管理者グループに属します。

なぜアプリケーションがクラッシュするのかわかりません。

これは私のコードです:

ProcessBuilder processBuilder = new ProcessBuilder(
"c:\\pstools\\PsExec.exe", 
"-u", 
"username", 
"-p", 
"password", 
appPath, 
arg1, 
arg2); 

processBuilder.start(); 
+0

に持つことを望むstirngであることを確認しますJavaが関与していなくても(手動で実行する場合でも)PSExecは "実際の"サーバーのC#アプリケーションで動作しますか?もしそうなら、おそらくあなたのコードとコマンドを投稿してレビューする必要があります。 – ziesemer

+0

はい、それは動作します。私はProcessBuilderを使ってコマンドを実行します。私はコードがOKであると確信しています –

+0

まあ、明らかに何かが正しくありません。あなたのコードを投稿してください、そして、私たちは仕事をするつもりがあります。 – ziesemer

答えて

1

はゾルタン・クシーズマディアでXCMDで試してみてください。 http://feldkir.ch/xcmd.htm

この問題は、Sysinternalsのフォーラムで、私はPSEXECそのEOL記号に問題があった覚えとして議論されてきました使用する。

あなたは私のウイルススキャナがXCMDことはできませんXCMD

+0

私は試しましたが、どうすればそれを使うべきか理解できませんでした。それはコンピュータ名を入力するように頼んで、 –

+0

とpsexecとほとんど同じ方法を使うべきか分からない:xCmd.exe \\ computer/user:somebody/pwd:*/d:d:\ test1.exeここで、 「コンピュータ」はリモートコンピュータの名前です。 – npocmaka

+0

同じコンピュータを使用するとどうなりますか?私はlocalhost上で実行したい。私は毎回以下のメッセージを受け取る:システムは指定されたファイルを見つけることができない。私のコマンド:xCmd.exe \\ <マシン名> cmd –

0

それだけで正常に動作します。 ShellCommandStringには\\を二重にする必要があることに注意してください。 私の同僚は、ちょうどこの質問を私に来た、私はそれをgoogoled、このページになった。.. たProcessBuilderは、うまく動作しますが、持っているstirngは=あなたはCMD

ProcessBuilder processBuilder = new ProcessBuilder(
    "Psexec \\\\\\\\10.192.246.76 -i -u Administrator -p admin2193 cmd /c C:\\\\CI\\\\AutoTest\\\\agent_test1.bat"); 

processBuilder.start(); 
関連する問題