2

我试图在我的代码中启动 MS NLB 管理器(nlbmgr.exe),但程序说它不存在,即使它存在。我已经检查了文件权限并且我可以访问,但它仍然无法正常工作。

这是我正在使用的代码:

if (File.Exists(@"C:\Windows\system32\nlbmgr.exe"))
{
    ProcessStartInfo info = new ProcessStartInfo();
    info.FileName = @"C:\Windows\system32\nlbmgr.exe";
    info.UseShellExecute = true;
    info.CreateNoWindow = true;
    info.WindowStyle = ProcessWindowStyle.Maximized;
    info.RedirectStandardInput = false;
    info.RedirectStandardOutput = false;
    info.RedirectStandardError = false;

    System.Diagnostics.Process p = System.Diagnostics.Process.Start(info);
}

如果我将路径复制粘贴到命令提示符或开始 -> 运行中,它工作正常。

我看到其他帖子提到了 sysnative 文件夹,但我的系统上不存在该文件夹。

谢谢您的帮助。

4

2 回答 2

6

看看这个关于文件系统重定向器

好像您的路径被重定向到 C:\Windows\SysWOW64\nlbmgr.exe sysnative 事情阻止了这种情况的发生。这实际上并不存在于您的系统上,它只是虚拟的。尝试更改您的路径,@"C:\Windows\Sysnative\nlbmgr.exe"这将导致调用实际被定向到"C:\Windows\System32\nlbmgr.exe"您想要的正确路径。

于 2013-08-13T23:57:47.830 回答
0

只是猜测,但这是一个试图访问此文件夹的 32 位应用程序吗?我认为可能发生的事情是将 FS 重定向到C:\Windows\SysWOW64. 在 wiki 部分的 C# 中有一些示例:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa384187(v=vs.85).aspx

于 2013-08-13T23:52:09.400 回答