2012-03-30 103 views
4

我试图从Windows 7 64位系统上的.bat或.jar文件运行“netsh mbn show interfaces”,但每次运行我的文件时,它都会导致“以下命令未找到mbn show interfaces”。netsh mbn show interface results in command not found on Win7 64Bit

当我在cmd.exe提示符下运行相同的命令时,结果是正确的并且如预期的那样。 当我们运行/?我们在可用命令中看到“mbn”。当我们从.bat或.jar输出相同的结果时,我们在netsh的可用命令中看不到那个“mbn”命令。

有人知道发生了什么? 我们知道有2个netsh.exe文件,一个在sys32中,一个在syswow64中。

所有帮助表示赞赏。

回答

4

我们解决了这个问题:

当运行命令“netsh的MBN显示界面中的”正在运行的CMD为64位操作。 从应用程序运行命令时(即32位),cmd以32位操作运行。并且mbn-context在32位中不可用。

在Windows 64位操作系统中,存在幕后功能:文件系统重定向。 含义:64位进程将调用等效的32位进程。

的解决方法是您使用CSHARP脚本或别的东西,你可以覆盖文件系统重定向:

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

并解决它!

+0

感谢这帮了很大的忙!只需更新PHP到v64bit和netsh与mbn一起工作 – waza123 2016-01-16 03:16:33