我想从执行 C#/C++/C 类型应用程序的主机远程执行机器上的命令。该应用程序旨在控制和执行远程机器上的命令执行。是否有可能使用任何编程语言以任何方式进行这样的事情?
我已经检查了 psexec 等,但我想要更多控制,因此考虑以编程方式“我的方式”:)
问候阿南德
我想从执行 C#/C++/C 类型应用程序的主机远程执行机器上的命令。该应用程序旨在控制和执行远程机器上的命令执行。是否有可能使用任何编程语言以任何方式进行这样的事情?
我已经检查了 psexec 等,但我想要更多控制,因此考虑以编程方式“我的方式”:)
问候阿南德
用于“远程过程调用”的 Googlr 并查看http://en.wikipedia.org/wiki/SOAP
对于 Unix ssh 是不错的选择,对于 Windows,您可以使用 winrm / powershell 组合,有 c++ api 可用于 winrm/powershell。
psexec 是探索的好方法。在这里查看更多详细信息。
这实际上取决于您想要运行什么类型的“命令”,您希望您的应用程序有多强大,以及您拥有什么样的资源(时间、成本、劳动力、技能水平等)。您有很多选择,从平庸且易于实现的,到过度架构的 SOA 杰作。如上所述,您可以使用简单的东西,如 SSH、PowerShell 等,但听起来您想要更强大的东西(现代?)(顺便说一句,xml-rpc 并不全是独角兽和彩虹;我有伤痕要证明它!)
在机器之间发送远程命令是一个古老的、已解决的问题,因此您可以利用许多现有技术:RPC -> XML-RPC -> WS-*/SOAP -> SOAP-RPC -> .Net Remoting -> WCF -> REST... 这些只是您可以访问的一小部分。
如果您的要求非常简单,我会回避成熟的 SOA/ESB 类型的架构,可能会使用 WCF 之类的技术(如果您有远大的梦想,并且希望将应用程序扩展为 SOA,则仍然可以使用它后来的杰作)。WCF 有一些学习曲线(WCF 当然也不全是独角兽和彩虹),但是我们可以从中学习很多资源。
使用 WCF,您还可以通过 REST 实现实际调用,将数据编码为 JSON,在 ASP.Net MVC 应用程序中构建整个事物,然后您将完全符合流行语。更重要的是,您将拥有一个灵活且可扩展的应用程序。
这将有助于更多地了解您要运行的命令的确切类型以及您正在寻找的功能。
不确定您要查找的命令类型。简单的“调用命令”应该能够在本地和远程计算机上执行命令。
如果您正在寻找更大范围的定制,您可能需要开发可以执行的代理(例如与 CI 一起使用的构建代理)。