Pregunta

Quiero ejecutar remotamente comandos en una máquina desde una máquina host que ejecuta un tipo de aplicación C#/c ++/c. La aplicación está destinada a controlar y ejecutar la ejecución de comandos en la máquina remota. ¿Es posible algo como esto de alguna manera usando cualquier lenguaje de programación?

He revisado sobre Psexec, etc., pero quiero más control, por lo tanto, pensando en hacerlo programáticamente "a mi manera" :)

Saludos Anand

¿Fue útil?

Solución

No estoy seguro del tipo de comandos que está buscando. Simplemente "invocar al comando" debería poder ejecutar comandos en computadoras locales y remotas.

Si está buscando personalización en gran medida, es posible que deba desarrollar agentes (como los agentes de compilación utilizados con CI) que pueden ejecutarse.

Otros consejos

Googlr para "llamada de procedimiento remoto" y mire http://en.wikipedia.org/wiki/soap

Para UNIX SSH es una buena opción, para Windows puede usar la combinación WinRM / PowerShell, hay C ++ API disponibles para WinRM / PowerShell.

Psexec es una buena manera de explorar. Mira aquí para más detalles.

En C# es bastante trivial alojar un servicio WCF en su aplicación y remoto de esa manera.

Verificar este enlace.

he usado XML-RPC Antes para RPC en C y eso es bastante sencillo.

Realmente depende del tipo de "comandos" que desee ejecutar, cuán fornido desea que sean sus aplicaciones y qué tipo de recursos (tiempo, costo, mano de obra, nivel de habilidad, etc.) que tenga disponible. Tiene muchas opciones, desde lo banal y fácilmente implementado, hasta la obra maestra SOA SOA. Como se mencionó anteriormente, puede usar algo directo como SSH, PowerShell, etc., pero parece que quieres algo más poderoso (¿moderno?) (Por cierto, XML-RPC no son todos unicornios y arcoiris; tengo las cicatrices para demostrar ¡eso!)

Enviar comandos remotos entre máquinas es un problema antiguo y resuelto, por lo que hay una gran cantidad de tecnología existente que puede aprovechar: RPC -> XML -RPC -> WS -*/SOAP -> SOAP -RPC -> .NET Remoting -> WCF -> REST ... y esos son solo unos pocos seleccionados a los que tiene acceso.

Si sus requisitos son bastante simples, me alejaría de una arquitectura SOA/ESB de tipo completa, y tal vez use una tecnología como WCF (que aún se puede usar si sueña en grande y desea expandir la aplicación en un SOA obra maestra más tarde). Hay una pequeña curva de aprendizaje con WCF (y WCF ciertamente tampoco es todos los unicornios y arcoíris), pero hay muchos recursos de los que hay que aprender.

Usando WCF, también puede implementar las llamadas reales a través de REST, codificar los datos en JSON, construir todo en una aplicación ASP.NET MVC y luego estará totalmente compatible con las palabras de moda. Sin embargo, lo más importante es que tendrá una aplicación que es flexible y expandible en el futuro.

Ayudaría saber más sobre los tipos exactos de comandos que desea ejecutar y la funcionalidad que está buscando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top