none
Problema para ejecutar .bat desde el servidor RRS feed

  • Pregunta

  • Hola, soy nueva en esto de los foros... espero que alguien me pueda ayudar.

    Estoy intentando ejecutar un archivo .bat desde vb.net.

    El siguiente fragmento es la función que estoy usando para tal fin --->                     

     Protected Sub Bt_Ejecutar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Bt_Ejecutar.Click
            Dim resp As String
            resp = crear_texto()
            If resp = 0 Then
                Dim i As Integer
                Try
                    Dim proceso As New Diagnostics.Process()
                    proceso.StartInfo.FileName = nombre_archivo   --> esta es una variable global
                    proceso.Start()

                Catch D As Exception
                    Dim str = D.Source & ": " & D.Message
                    EnviarMensajeErrorHTML(Page, "Se ha encontrado un Error. " & str)
                    Exit Sub
                End Try
                Lb_Msg.Text = "El archivo se ejecutó exitosamente"
            Else
                Lb_Msg.Text = "No se pudo crear el archivo .BAT"
            End If

        End Sub

    Al ejecutar la aplicación desde mi equipo funciona perfecto, pero al ejecutarla desde el servidor (windows server 2008) no ejecuta el .bat.....alguien tendrá alguna idea de que me falta o que estoy haciendo mal?

    De antemano gracias!

    jueves, 12 de marzo de 2015 20:33

Todas las respuestas

  • Hola Ingridg86

    Es un problema de permisos. Yo probe en su momento obtener salidas... pero no recuerdo como lo configuraron los chicos de infraestructura (era una empresa que trabaja en el 2007)

    Hay un item en MS Support que te puede ayudar:

    Que es modificar el servicio del IIS (mmm! habria que preguntar si otro lo hizo asi) ... la idea al servicio de WWW (o sea el IIS) darle el permiso de "Allow service to interact with desktop"

    Una vez que cambies el servicio lo tendras que reiniciar para que tome la configuracion.
    Avísanos si funciono.. 

    Pero no se que implicatorias de seguridad podrias tener! con esto... 
    Te estaba poor decir para probar con impersonar ASP.NET para que ejecute tu app (o tu codigo) con un usuario que tenga los permisos suficientes pero no lo probe asi que por eso no se si funcionaria para ejecutar un "bat/exe"

    Dale una mirada aqui tambien

    Espero que te sirva de ayuda o guia.


    Jose. A Fernandez | blog: http://geeks.ms/blogs/fernandezja

    jueves, 12 de marzo de 2015 20:58
  • hola

    como validas que el bat no se ejecuta en el servidor ?

    defines algun try..catch para capturar si se genera algun error

    que contiene la variable "nombre_archivo" ? es el nombre del bat o la ruta fisica completa

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 12 de marzo de 2015 20:59
  • Hola, gracias por la respuesta, probaré con lo que me dices y les estaré contando si me funcionó.
    viernes, 13 de marzo de 2015 13:19
  • hola, la variable "nombre_archivo" contiene la ruta física completa donde esta alojado el .bat esta la obtengo el la función "crear_texto()" que se encuentra arriba.

    Hasta ahora solo se que en el servidor no se ejecuta el .bat porque no me genera el archivo .bak (backup de la base de datos) que debería generar ... pero cuando lo ejecuto manualmente desde el servidor si lo hace ( es decir, que el arcivo .BAT ESTA BIEN)

    espero haberme explicado bien y que me hayas podido entender. 

    viernes, 13 de marzo de 2015 13:25
  • Hola soy yo otra vez, no he logrado dar con la solución... pero me sirvió mucho el código para capturar salida de un proceso... al implementarlo me arroja el siguiente error

    ------------------------------------------------------ERROR ------------------------

    c:\windows\system32\inetsrv>SQLCMD -E -S SVR_DESARROLLO\SVR_DESARROLLO -Q "BACKUP DATABASE Bd_SAUP_DESARROLLO TO DISK='d:respaldos\respaldo13032015.BAK'"

    Mensaje 916, Nivel 14, Estado 1, Servidor SVR_DESARROLLO\SVR_DESARROLLO, L¡nea 1

    La entidad de seguridad de servidor "IIS APPPOOL\DefaultAppPool" no puede tener acceso a la base de datos "BD_SAUP_DESARROLLO" en el contexto de seguridad actual.

    Mensaje 3013, Nivel 16, Estado 1, Servidor SVR_DESARROLLO\SVR_DESARROLLO, L¡nea 1

    Fin an¢malo de BACKUP DATABASE.

    --------------------------------------------------------------------------------------------------------

    PERO LA VERDAD NO SE COMO DEBO CONFIGURAR EL IIS PARA QUE ME PERMITA EL ACCESO A LA BASE DE DATOS.... ALGUNA SUGERENCIA?


    viernes, 13 de marzo de 2015 19:04