是否可以在 Windows Forms 中使用 c# 连接到 unix 服务器并运行 shell 脚本,并在某些文本框中检索脚本的输出?
我还想使用代码远程连接桌面并在那里搜索多个文件。请让我知道该怎么做。
要回答您的第一个问题:
通常,Unix 机器会运行某种安全 shell (SSH) 服务器,它允许您使用特定的用户名/密码进行连接并运行您的 shell 脚本。
为了从您的 Windows 窗体应用程序中运行它,您可以从http://granados.sourceforge.net/集成像 Granados 这样的软件库来连接和运行脚本,或者您可以简单地设置像 PuTTY 这样的客户端来运行脚本和将其作为外部进程生成,即:
Process.Start("C:\Putty\putty.exe -ssh -m C:\myScript.txt remoteUser@192.168.1.1);
您可以通过 windows 上的 putty 查看通过 ssh 编写脚本,以获取有关设置脚本的更多信息。听起来你必须将 putty 的输出保存到一个文件中,然后如果你按照这个方向使用你的 WinForms 应用程序来读取它。
另一种选择是添加对像 granados 这样的库的引用,或者简单地使用 NuGet 包管理器将“ssh.net”添加到您的 winforms 应用程序。在http://sshnet.codeplex.com/discussions/285219有一个示例,他们打开与服务器的连接,执行命令并使用 ssh.net 库读取结果。
对于第二个问题,这取决于远程 PC 与您的连接方式。如果它们在同一个共享网络上(例如:工作中的 Intranet),您可以在您感兴趣的机器上设置网络共享,并使用以下路径直接检查文件系统:
System.IO.File.GetAttributes(@"\\hostname\shareName\filename.txt");
如果远程计算机实际上位于远程位置,则变得更加困难,您将需要使用远程桌面库或让远程计算机设置 FTP 服务器或类似的东西来浏览文件系统。