gpt4 book ai didi

c# - 从代码运行 PsExec 进程的问题

转载 作者:太空狗 更新时间:2023-10-30 01:09:26 25 4
gpt4 key购买 nike

我在尝试使用 PsExec 远程运行 .NET 命令行工具时遇到了一个奇怪的问题。

  1. 从命令行运行 PsExec 时,它可以正常运行和完成。

  2. 从控制台应用程序运行它时(创建进程, 运行带有必要参数的 PsExec.exe)——它是 运行正常。

  3. 从我们的内部自定义工具运行它时 用于运行不同的任务,它要么超时要么不 顺利完成。

这是我使用的代码:

Process p = new Process();

p.StartInfo.FileName = @"C:\PsExec.exe";
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;

string arg = "-snapshot -display C:\*.msi -s";

p.StartInfo.Arguments = @"\\10.161.203.106 -u user -p pwd -cf C:\FVT.exe " + arg;

Logger.Info(this, "Starting process");

p.Start();
var ended = p.WaitForExit(60 * 1000);

if (!ended)
{
throw new Exception("Process timed out.");
}

Logger.Info(this, "Process ended");

using (StreamReader sr = p.StandardOutput)
{
string buffer = sr.ReadToEnd();
Logger.Info(this, buffer);
}

此代码在 cmd 行或独立应用程序中运行良好!

我不知道这里还有什么问题。

我们的内部工具生成一个新线程并在其中运行这段代码。

更新:

命令行窗口中的命令行 + args -- 工作。相同的 cmd + args,作为带有 RedirectOutput 的进程运行 - 暂停并在超时时返回。

这可能是 .NET 中的错误吗? (其他程序、批处理文件等都会发生这种情况)。

最佳答案

尝试将 -accepteula 添加到 psexec 的参数中

关于c# - 从代码运行 PsExec 进程的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6812637/

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