Ejecutar aplicacion desde servicio (sql server)

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • juanjo_16v
    Senior Member
    • Jan
    • 1254

    Ejecutar aplicacion desde servicio (sql server)

    Hola gente:

    Tengo un problema/duda.

    En un Windows 8 que tiene el "Terminal Server multiusuario" (hace las funciones de servidor) hay instalado un sql server 2012, lo que pretendo es que cuando una aplicación inserte, modifique o elimine una serie de datos, a un usuario del ordenador (que es local, no se conecta con el escritorio remoto) le salte una alerta, o ejecute un programa (que para el caso creo que es lo mismo).

    Ahora mismo, con la programación de trigger, cuando inserta un dato, ejecuta un programa en modo consola que escribe en un fichero un texto, pero no puedo ejecutar el programa de escritorio porque el usuario que ejecuta el programa es el servicio de sql server, entonces, es posible desde este servicio sql server lanzar el programa al usuario que yo le indique que se el abra en su sesión?

    Gracias
  • jmtella
    Administrator
    • Nov
    • 21085

    #2
    Prueba a disparar el comando msg. Con /? te dará la sintaxis.

    Comentario

    • juanjo_16v
      Senior Member
      • Jan
      • 1254

      #3
      Pero con el msg mando un mensaje solo no? no ejecuto una aplicación verdad?

      voy a ver,

      gracias
      Editado por última vez por juanjo_16v; 03/01/2017, 17:47:24.

      Comentario

      • jmtella
        Administrator
        • Nov
        • 21085

        #4
        Originalmente publicado por juanjo_16v Ver Mensaje
        Pero con el msg mando un mensaje solo no? no ejecuto una aplicación verdad?

        voy a ver,

        gracias
        Efectivamente...

        Comentario

        • juanjo_16v
          Senior Member
          • Jan
          • 1254

          #5
          Y si posible desde una aplicación (olvidemonos del servicio) lanzar una aplicación al escritorio de otro usuario? me he explicado bien?
          Editado por última vez por juanjo_16v; 03/01/2017, 19:16:58.

          Comentario

          • jmtella
            Administrator
            • Nov
            • 21085

            #6
            Desde una aplicación (tuya, es decir que tu programes)... se puede hacer todo.

            Es que no entiendo lo que persigues...pero todo es posible.

            Comentario

            • juanjo_16v
              Senior Member
              • Jan
              • 1254

              #7
              Lo que quiero es que a un usuario concreto le salte una aplicación (lo del mensaje puede valerme) cuando se edite un registro de la base de datos. Con el trigger detecto cuando esto pasa, y cuando pasa ejecuto una aplicación (programada por mi, de consola, donde registro en la misma base de datos los cambios) y luego quiero avisar a un usuario que va a estar encargado de esto, de que se ha producido este cambio.

              Mi idea es que se le abriera una aplicación en pantalla con el listado de cambios. Desde el triger no puedo ejecutar aplicaciones de escritorio, porque el usuario que ejecuta la aplicación de consola que dispara el trigger es el servicio de sql server que no tiene sesión, pero si desde la aplicación de consola puedo decirle: "ejecuta aplicación en la sesion tal" y en esa sesión en concreto se ejecutara la aplicación seria genial.

              Ahora?

              Comentario

              • jmtella
                Administrator
                • Nov
                • 21085

                #8
                Posiblemente con powershell puedas abrir en la sesión de usuario...pero esto hay que mirarlo...

                Comentario

                • juanjo_16v
                  Senior Member
                  • Jan
                  • 1254

                  #9
                  muchas gracias, voy a probar. También he leído con el PSTools igual se puede

                  Comentario

                  • jmtella
                    Administrator
                    • Nov
                    • 21085

                    #10
                    Originalmente publicado por juanjo_16v Ver Mensaje
                    muchas gracias, voy a probar. También he leído con el PSTools igual se puede
                    A ver, si el evento te lo captura eventriggers...puedes lanzar cualquier aplicación grafica o no... o un script (cmd) que arranque aplicaciones... no tiene esto nada que ver con que el evento lo escriba un servicio..

                    Comentario

                    • juanjo_16v
                      Senior Member
                      • Jan
                      • 1254

                      #11
                      Pruebo y te cuento. Gracias

                      Comentario

                      • juanjo_16v
                        Senior Member
                        • Jan
                        • 1254

                        #12
                        No hay forma, he probado con el msg, con los pstool, llamando a una aplicación desde otro, y nada. Se ejecuta el trigger de la base de datos, la aplicación de consola que me escribe en un fichero y fin, ni mensaje, ni abre la otra aplicación ni nada.

                        Alguna idea?

                        Comentario

                        • jmtella
                          Administrator
                          • Nov
                          • 21085

                          #13
                          Originalmente publicado por juanjo_16v Ver Mensaje
                          No hay forma, he probado con el msg, con los pstool, llamando a una aplicación desde otro, y nada. Se ejecuta el trigger de la base de datos, la aplicación de consola que me escribe en un fichero y fin, ni mensaje, ni abre la otra aplicación ni nada.

                          Alguna idea?
                          psexec -i te lo va a permitir...pero para ello hay que conocer la sesión del usuario conectado 8no tiene por que ser la consola). Busca como localizar una sesión en un usuario logueado...

                          Comentario

                          • jmtella
                            Administrator
                            • Nov
                            • 21085

                            #14
                            Originalmente publicado por jmtella Ver Mensaje

                            psexec -i te lo va a permitir...pero para ello hay que conocer la sesión del usuario conectado 8no tiene por que ser la consola). Busca como localizar una sesión en un usuario logueado...
                            He probado esto:

                            psexec \\ka -u USUSARIO -i 1 cmd /c start notepad.exe

                            Y tengo abiertos dos usuarios en el ordenador KA... si lo lanzo con -i 1 me lo abre en el primer usuari con -i 2 en el segundo... pero esto no vale, hay que determinar la sesión de cada uno... joer..había un comando y no me acuerdo ahora... puto Alzheimer...

                            Comentario

                            • jmtella
                              Administrator
                              • Nov
                              • 21085

                              #15
                              Y con el msg es lo mismo...hay que ver en que consola se lanza...

                              Comentario

                              Trabajando...
                              X