gpt4 book ai didi

c# - NET VIEW 在与 Process.Start() 一起使用时表现不同

转载 作者:行者123 更新时间:2023-11-30 18:30:22 30 4
gpt4 key购买 nike

我在我的程序中使用 net.exe 来查看工作组中的所有计算机。

代码如下:

   var net = new Process();

net.StartInfo.FileName = "net.exe";
net.StartInfo.CreateNoWindow = true;
net.StartInfo.Arguments = @"VIEW /DOMAIN:my-workgroup";
net.StartInfo.RedirectStandardOutput = true;
net.StartInfo.UseShellExecute = false;
net.StartInfo.RedirectStandardError = true;
net.Start();

当我在 shell 中执行时该命令工作正常,但是当我使用显示的代码时,该命令返回设备未连接

我也试过以管理员身份运行该程序,这没有什么区别。

指定的域名实际上是一个工作组

对于在指定工作组的 shell 中运行的 net.exe 可以正常工作。

此外,当我为不同的域尝试 net view 时,代码也有效。因此,当我从 shell 或使用 Process.Start() 运行命令时,环境中肯定存在一些差异。

命令在 shell 中和 Process.Start() 中表现不同的原因是什么?

最佳答案

我不知道它是否能解决您正在寻找的问题,但这对我有用;

您需要 Hook 捕获输出以将其带到控制台

class Program
{
static void Main(string[] args)
{
var net = new Process()
{
StartInfo = new ProcessStartInfo("net.exe", @"view /domain:domain")
{
RedirectStandardOutput = true,
UseShellExecute = false,
},


};
net.OutputDataReceived += WriteToConsole;
net.ErrorDataReceived += WriteToConsole;
net.Start();
net.BeginOutputReadLine();

net.WaitForExit();
Console.ReadLine();
}

private static void WriteToConsole(object sender, DataReceivedEventArgs e)
{
Console.WriteLine(e.Data);
}
}

关于c# - NET VIEW 在与 Process.Start() 一起使用时表现不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21623461/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com