Principales respuestas
Ejecutar achivo bat en equipo remoto usando PS-Tools

Pregunta
-
Hola chicos!,
Pues como dice el titulo, estoy tratando de ejecutar un archivo .bat en una maquina remota usando PS-Tools.
Contexto:
Tengo una aplicación(Operador) que manda la instrucción de matar el proceso de una aplicación que actualmente se ejecuta(uso pskill. exe) el cual funciona sin problemas.
Esta es la linea de código que uso para hace dicho proceso:
Mata proceso
string arguments = @"\\" + domain + " -u \"nocshecter\" -p 123456 \"programa.exe\""; Process close = new Process(); close.StartInfo.FileName = "pskill.exe"; close.StartInfo.Arguments = arguments; close.StartInfo.UseShellExecute = false; close.StartInfo.CreateNoWindow = true; close.Start();
y al mismo tiempo ejecuto un segundo método que manda a llamar aun archivo bat para abrir nuevamente la aplicación de cierto tiempo(uso psexec.exe) el cual no logro hacer que se ejecute remotamente en dicha maquina.
Este es mi codigo:
Ejecuta archivo .bat ubicado en cierta ruta
yield return new WaitForSeconds( 3.5f ); string batPath = @"\\" + domain + " -d -u \"nocschecter\" -p 123456 -i \"C:\\programa\\Herramientas\\Restart.bat\""; Process program = new Process(); program.StartInfo.FileName = "psexec.exe"; program.StartInfo.Arguments = batPath; program.StartInfo.UseShellExecute = false; program.StartInfo.CreateNoWindow = true; program.Start();
Quiero mencionar que en un equipo de prueba este código ya funciona pero al probarlos en otros equipo el .bat no se ejecuta(solo mata el proceso en ejecución).
Tengo los dos equipos configurados de tal forma al de los equipos de pruebas(usuario, dominio, etc) sin embargo no funciona.
Alguien propria orientarme por si me falta algo mas? estoy usando PS-Tools.
Muchas gracias!
- Editado NocSchecter jueves, 31 de octubre de 2019 0:01 correcion
Respuestas
-
hola
Si inicias una ventana de DOS o quizas de PowerShell y ejecutas el comando
psexec.exe \\domain -d -u "nocschecter" -p 123456 -i "C:\\programa\\Herramientas\\Restart.bat";
funciona ? valida primero que ejecute remoto desde una consola antes de llevarlo a codigo
Otra forma es ver si desde la clase Process puede redireccionar la salida estandar y ver si hay algun mensaje de error
ProcessStartInfo.RedirectStandardOutput Property
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Pablo RubioModerator jueves, 31 de octubre de 2019 16:10
- Marcado como respuesta Pablo RubioModerator jueves, 31 de octubre de 2019 23:58
-
Hola Leandro,
por el momento no tengo acceso al equipo al que quiero implementar la función. Sin embargo ya hice test creando dos maquinas virtuales y llamar el archivo .bat desde CMD el cual funciona perfectamente, incluso ya probé usando un router(manteniendo la misma configuración del equipo final) y también funciona.
Aun no logro comprender que provoca que el equipo final no logre encontrar la ruta para ejecutar el .bat.
PD. Hice el procedimiento directamente en cmd ejecutando el .bat pero que llame a un archivo .bat y este funciona, incluso cuando mando a matar el proceso
Saludos!
- Marcado como respuesta Pablo RubioModerator jueves, 31 de octubre de 2019 23:58
Todas las respuestas
-
hola
Si inicias una ventana de DOS o quizas de PowerShell y ejecutas el comando
psexec.exe \\domain -d -u "nocschecter" -p 123456 -i "C:\\programa\\Herramientas\\Restart.bat";
funciona ? valida primero que ejecute remoto desde una consola antes de llevarlo a codigo
Otra forma es ver si desde la clase Process puede redireccionar la salida estandar y ver si hay algun mensaje de error
ProcessStartInfo.RedirectStandardOutput Property
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Pablo RubioModerator jueves, 31 de octubre de 2019 16:10
- Marcado como respuesta Pablo RubioModerator jueves, 31 de octubre de 2019 23:58
-
Hola Leandro,
por el momento no tengo acceso al equipo al que quiero implementar la función. Sin embargo ya hice test creando dos maquinas virtuales y llamar el archivo .bat desde CMD el cual funciona perfectamente, incluso ya probé usando un router(manteniendo la misma configuración del equipo final) y también funciona.
Aun no logro comprender que provoca que el equipo final no logre encontrar la ruta para ejecutar el .bat.
PD. Hice el procedimiento directamente en cmd ejecutando el .bat pero que llame a un archivo .bat y este funciona, incluso cuando mando a matar el proceso
Saludos!
- Marcado como respuesta Pablo RubioModerator jueves, 31 de octubre de 2019 23:58