在 C# 中使用腻子关闭 linux

Using putty to shutdown linux in c#

我在用 c# 从 windows 向 shutdown/restart linux 编写应用程序时遇到了一些问题。

我正在尝试使用 putty 来完成这项任务,但出了点问题。

            Process p = new Process();
            ProcessStartInfo info = new ProcessStartInfo();
            info.FileName = "putty.exe";
            info.RedirectStandardInput = true;
            info.UseShellExecute = false;
            info.Arguments = @"root@192.168.0.25 -pw 1234qwer ";

            p.StartInfo = info;
            p.Start();

            p.StandardInput.WriteLine("shutdown -h ");
            p.StandardInput.WriteLine("exit");
            string output = p.StandardOutput.ReadToEnd();
            p.WaitForExit();
            Console.WriteLine(output);

上面我粘贴了我用来实现这个目标的代码。 一切都很好,直到我不得不在 putty 命令行中编写更多内容,在这种情况下,StandardInput 不是执行此操作的好方法,而且我没有找到其他方法来执行此操作。

我也尝试以同样的方式使用 PLINK.exe,但它也没有解决我的问题 - 事实上 PLINK 甚至没有出现。

任何解决此问题的想法或技巧都很好。

尝试SSH.NET

using (var client = new SshClient("hostnameOrIp", "username", "password"))
{
    client.Connect();
    client.RunCommand("shutdown -h now;systemctl poweroff");
    client.Disconnect();
}