2012-03-30 45 views
4

Windows 7 64ビットシステムで.batまたは.jarファイルから "netsh mbn show interfaces"を実行しようとしていますが、ファイルを実行するたびに「次のコマンドは見つかりませんでした。mbn show interfaces」と表示されます。netsh mbn show interfaces結果がWin7 64ビットでコマンドが見つかりません

同じコマンドをcmd.exeプロンプトで実行すると、結果は正しく、期待通りです。 /を実行すると利用可能なコマンドでは「mbn」と表示されます。 .batや.jarから同じ結果を出力すると、netshの利用可能なコマンドに "mbn"コマンドが表示されません。

何が起こっているのか分かりませんか? 2つのnetsh.exeファイルがあります.1つはsys32に、もう1つはsyswow64にあります。

すべてのご協力をいただきありがとうございます。

答えて

4

我々は問題を解決して次のコマンドを実行している場合

「netshをMBNショーのインターフェースは、」64ビット操作としてCMDを実行していました。 アプリケーションからコマンドを実行すると(32ビット)、cmdは32ビット操作として実行されます。そして、32ビットではmbn-contextは利用できません。

Windows 64bit OSでは、ファイルシステムのリダイレクト機能があります。 意味:64ビットプロセスは、同等の32ビットプロセスを呼び出します。

IntPtr ptr = IntPtr.Zero; 
Wow64DisableWow64FsRedirection(ref ptr); 
// -- your proces information here -- 
Wow64RevertWow64FsRedirection(ptr); 
//always revert the operation. 

し、それを解決:

回避策は、あなたがファイルシステムのリダイレクトを無効にすることができますCSHARPスクリプトまたは何か他のものを使用することです!

+0

これは大いに助けてくれてありがとう! PHPをv64bitにアップデートするだけで、netshはmbnで動作します – waza123

関連する問題