¿Quizá Quser o Qwinsta?
Ejecutar aplicacion desde servicio (sql server)
Colapsar
X
-
Originalmente publicado por RSola Ver Mensaje¿Quizá Quser o Qwinsta?
(el Alzheimer...)
Comentario
-
-
El comando es qwinsta
Si abro una consola y escribo:
C:\PSTools>PsExec.exe \\servidorbd -u administrador -p $$$$$ -i 2 cmd /c start notepad.exe
funciona correctamente (aunque solo tengo un usuario en el equipo y me conecto con el escritorio remoto)
Ahora cojo esa línea y la meto en una aplicación de consola tal cual esta:
string ruta = "c:\\pstools\\psexec.exe";
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(ruta);
try
{
startInfo.Arguments = "\\\\servidorbd -u administrador -p $$$$ -i 2 cmd /c start notepad.exe";
Process p = newProcess();
p.StartInfo = startInfo;
p.Start();
}
catch
{
log("error al ejecutar trigger");
}
Pues esta aplicación de consola si la ejecuto desde una consola o haciendo doble click funciona, pero si inserto un registro en la tabla donde estoy haciendo las pruebas no sale nada de nada
Comentario
-
-
Para saber la sesión, en el server KA del usuario Administrator, te puede servir esto:
Código:for /f "usebackq skip=1 tokens=1,3 delims=> " %m in (`quser /SERVER:ka`) do @if /i %m EQU Administrator echo %n
Y en vez del echo %n, lleva esa variable a una de entorno...
¿ y por qué no la metes en un cmd simplemente?
Comentario
-
-
Originalmente publicado por juanjo_16v Ver MensajeLo de la sesión estaba bien, es la que yo estaba poniendo, la 2
Comentario
-
-
Originalmente publicado por juanjo_16v Ver MensajeSi pero la sesión se supone que es la misma mientras no te desconectes y mientras se conecten otros usuarios?
vamos que con la sesión 2 funciona bien si ejecuto la aplicación desde fuera del sql server, pero desde el trigger no va
Comentario
-
-
Originalmente publicado por juanjo_16v Ver MensajeSi, si eso lo se, pero es que no funciona poniendo la sesión correcta
Comentario
-
-
Originalmente publicado por juanjo_16v Ver MensajePues desde consola funciona e incluso si pongo la línea de Psexec... en el tigger directamente no funciona.
Pondre los avisos por email, pero necesitaba que fuera mas "inmediato".
Gracias de todas las formas
Comentario
-
-
No hay forma, he modificado el trigger:
-- trigger 1
SET@cmd='C:\test\tigger2.exe '+'holaa'
SET@var='echo '+@cmd
EXECMaster..xp_cmdshell@cmd
EXECMaster..xp_cmdshell@var
-- trigger 2
SET@cmd='c:\pstools\psexec.exe \\servidorbd -u administrador -p $$$$$ -i 2 cmd /c start notepad.exe'
SET@var='echo '+@cmd
EXECMaster..xp_cmdshell@cmd
EXECMaster..xp_cmdshell@var
El primero se ejecuta y el segundo se queda frito, es el mismo problema que cuando ejecutaba un programa que solo mostraba una alerta, pero si ejecuto en una consola c:\pstools\psexec.exe \\servidorbd -u administrador -p $$$$$ -i 2 cmd /c start notepad.exe si que se abre el notepad,
Comentario
-
-
Originalmente publicado por juanjo_16v Ver MensajeNo hay forma, he modificado el trigger:
-- trigger 1
SET@cmd='C:\test\tigger2.exe '+'holaa'
SET@var='echo '+@cmd
EXECMaster..xp_cmdshell@cmd
EXECMaster..xp_cmdshell@var
-- trigger 2
SET@cmd='c:\pstools\psexec.exe \\servidorbd -u administrador -p $$$$$ -i 2 cmd /c start notepad.exe'
SET@var='echo '+@cmd
EXECMaster..xp_cmdshell@cmd
EXECMaster..xp_cmdshell@var
El primero se ejecuta y el segundo se queda frito, es el mismo problema que cuando ejecutaba un programa que solo mostraba una alerta, pero si ejecuto en una consola c:\pstools\psexec.exe \\servidorbd -u administrador -p $$$$$ -i 2 cmd /c start notepad.exe si que se abre el notepad,
Comentario
-
Comentario