Mar*_*nde 5 networking 32bit-64bit windows-7 netsh
我正在尝试从 Windows 7 64 位系统上的 .bat 或 .jar 文件运行“netsh mbn show interfaces”,但每次运行我的文件时,都会导致“找不到以下命令 mbn show interfaces”。
当我在 cmd.exe 提示符下运行相同的命令时,结果是正确的并且符合预期。当我们运行 /? 我们在可用命令中看到“mbn”。当我们从 .bat 或 .jar 输出相同的结果时,我们在 netsh 的可用命令中看不到“mbn”命令。
有人知道这是怎么回事吗?我们知道有 2 个 netsh.exe 文件,一个在 sys32 中,一个在 syswow64 中。
感谢所有帮助。
我们解决了这个问题:
运行命令“netsh mbn show interface”时,将 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.
Run Code Online (Sandbox Code Playgroud)
这解决了它!