netsh mbn show interfaces导致在Win7 64位上找不到命令



我正试图在Windows 7 64位系统上从.bat或.jar文件运行"netsh mbn show interfaces",但每次运行我的文件时,都会导致"找不到以下命令mbn show interface"。

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

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

感谢所有的帮助。

我们解决了问题:

运行命令"netsh mbn show interface"时,将cmd作为64位操作运行。从应用程序(即32位)运行命令时,cmd将作为32位操作运行。并且mbn上下文在32位中不可用。

在windows 64位操作系统中,存在一个幕后功能:文件系统重定向。意思是:64位进程将调用等效的32位进程。

解决方法是使用csharp脚本或其他可以覆盖文件系统重定向的东西:

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

这就解决了问题!

相关内容

  • 没有找到相关文章

最新更新