C# nbtstat进程无法找到指定文件

4

我正在尝试使用nbtstat获取我们客户端的MAC地址。我正在使用System.Diagnostics.Process来执行该命令。

Process p = new Process();
p.StartInfo.FileName = "nbtstat";
p.StartInfo.Arguments = string.Format("-a {0}", principal.Name);
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = true;
p.Start();

很遗憾,那段代码给了我一个异常。

系统找不到指定的文件。

如果nbtstat的exe文件在System32文件夹中,我认为它应该可以在没有完整路径的情况下工作。但是无论如何,我还是尝试使用了完整路径。

p.StartInfo.FileName = @"C:\Windows\System32\nbtstat.exe";

这段代码仍然抛出异常。我能够使用其他命令,比如ipconfiggetmacping等等,只有nbtstat会导致问题。我已经仔细检查了nbtstat.exe的目录,它在正确的文件夹中。我也尝试使用ProcessStartInfo,像这样:

ProcessStartInfo info = new ProcessStartInfo();
// set properties like above
Process.Start(info);

此外,这也无法帮助(如果这个方法能正常工作但上面的代码不能,会让我感到困惑,因为它们应该完全一样,对吗?)。

我正在使用Windows Forms和.NET Framework 4.5。


1
尝试使用任何 CPU 进行构建。 - Vinay Pandey
1
请参考http://scottiestech.info/2009/06/20/calling-a-32-bit-system-command-from-a-script-in-x64-windows/,您可能需要查看如何从win64环境中调用win32文件。 - Anil
刚从@VinayPandey的回答中明白了,我给他点赞。 - Anil
@Roman,现在它不工作了,超时了:( - Anil
@AnilKumar 再次上线,感谢你的提示 :) - roemel
显示剩余2条评论
1个回答

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接