¿Quizá Quser o Qwinsta?
Ejecutar aplicacion desde servicio (sql server)
Colapsar
X
-
Efectivamente...con cualquiera de ellos...capturar la sesión, y con un for lo puede sacar en un script y con ello lanzar el psexec...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:
en un cmd, cambia el % por dos %%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
-
-
cada vez es una...Originalmente publicado por juanjo_16v Ver MensajeLo de la sesión estaba bien, es la que yo estaba poniendo, la 2
Comentario
-
-
Pero la próxima vez que hagas logon (sobre todo si es W10 o Windows 2016) puede ser cualquier sesión. Dispara un cmd desde el trigger con todo ese contenido...que tiene que ir.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
-
-
No tiene sentido...Originalmente publicado por juanjo_16v Ver MensajeSi, si eso lo se, pero es que no funciona poniendo la sesión correcta
Comentario
-
-
Y ¿si desde el tigger grabas un evento nuevo... y asociado a ese evento una acción que es disparar ese procedimiento?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
-
-
Con la primera, créate un fichero en una localización determinada... y luego una tarea programa que entre cada minuto (por ejemplo) y que si existe ese fichero lo borre y haga lo que quieras de mensajería, etc....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