使用 Process.Start() 访问 ssh

Posted

技术标签:

【中文标题】使用 Process.Start() 访问 ssh【英文标题】:Accessing ssh with Process.Start () 【发布时间】:2021-06-05 17:28:53 【问题描述】:

我有一个启动 ssh 命令的批处理文件。它使用 Windows 10 中包含的 OpenSSH 客户端 (c:\Windows\System32\OpenSSH\ssh.exe) 如果我在资源管理器中双击批处理文件,它可以正常工作。如果我从 cmd.exe 窗口运行它,它也可以正常工作。但是,如果我从 C# 应用程序使用

运行它,它不会找到 ssh.exe
Process process = new Process ();
process.StartInfo.FileName = string_to_batch_file;
process.Start ();

问题的根源是如果我从 C# 应用程序启动 System32 下的“OpenSSH”目录不可见。如果我把

dir c:\Windows\System32\
pause

在批处理文件中并从资源管理器中启动它,“OpenSSH”目录是可见的。如果我从 C# 应用程序启动它,则不是。

这种行为的原因是什么?我可以做些什么来解决这个问题?

【问题讨论】:

【参考方案1】:

按照 Mofi 的建议,这是 32 位/64 位的问题。我以前没有想过。我刚刚将我的 C# 应用程序切换到 64 位。

【讨论】:

以上是关于使用 Process.Start() 访问 ssh的主要内容,如果未能解决你的问题,请参考以下文章

08===跨线程访问之随机点名系统。

使用 Process.start 设置环境变量

Process.Start 功能

csharpcodeprovider:不能使用 Process.Start()

使用 Process.Start 修复 CA2122

使用 process.start 后如何退出主程序?