none
Acceso denegado al ejecutar archivo .cmd con c# en windows server 2008 RRS feed

  • Pregunta

  • Tengo una aplicación web que esta alojada en un servidor IIS7 en un equipo servidor con windows server 2008, la aplicación consiste en ejecutar un archivo .cmd en el servidor, el archivo .cmd tiene una instrucción para reiniciar el equipo servidor, pero no se puede ejecutar ya que  me muestra el siguiente error

     System.ComponentModel.Win32Exception (0x80004005): Acceso denegado
       en System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
       en System.Diagnostics.Process.Start()
       en System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
       en Ted.MNSProject.Reiniciar.Shutdown() en C:\Users\test\Desktop\Soluciones\MNS\Ted.MNS\Ted.MNSProject\Reiniciar.aspx.cs:línea 154
       en Ted.MNSProject.Reiniciar.btnSiReiniciar_Click(Object sender, EventArgs e) en C:\Users\test\Desktop\Soluciones\MNS\Ted.MNS\Ted.MNSProject\Reiniciar.aspx.cs:línea 59

    Mi codigo fuente que uso es

     protected void btnSiReiniciar_Click(object sender, EventArgs e)
            {
                try
                {
                    RebootPc();
    
                    Log2("MNS OK");
                }
                catch (Exception ex)
                {
                    Log2("MNS ERROR  " + ex.ToString());
                }
    
            }
    
    
    
    public void RebootPc()
            { 
                string pathBAT = "C:\\Users\\pc1\\Desktop\\restartWindows.cmd";
    
                ProcessStartInfo startInfo = new ProcessStartInfo(pathBAT);
    
                startInfo.Verb = "runas";
                System.Diagnostics.Process.Start(startInfo);
    
            }



    ivxn25

    martes, 14 de enero de 2020 22:22

Respuestas

  • >>Y a que se debe que en mi pc de forma local si funciona?

    porque seguro lo ejecutas iniciado desde el Visual Studio con lo cual el hosting ejecuta con otros provilegios

    en el servidor la seguridad es mas elevada

    Quizas debas cambiar el usuario con el cual configuras el Application Pool asignado al web site en el IIS con un user que sea admin de la pc, pero sigo pensando que no es una accion que sea recomendada realizar con un desarrollo web

    Esto se podria realizar con alguna comando de WMI o quizas de PowerShell de forma remota

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 14 de enero de 2020 23:33

Todas las respuestas

  • hola

    En un desarrollo web ha aspectos de seguridad que debes respetar, no puedes poner los archivos en cualquier sitio

    Deberias poner el archivo dentro de la estructura de carpetas del sitio web, no funciona si esta en el desktop porque el usuario con el cual se impersona el sitio no tiene acceso a esta carpeta

    Ademas quizas ese usuario tampoco tenga permisos para ejecutar esa accion de reinicio

    Creo que usar un web application para reciniciar una pc no es correcto

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 14 de enero de 2020 22:53
  • Y a que se debe que en mi pc de forma local si funciona?

    ivxn25

    martes, 14 de enero de 2020 23:08
  • >>Y a que se debe que en mi pc de forma local si funciona?

    porque seguro lo ejecutas iniciado desde el Visual Studio con lo cual el hosting ejecuta con otros provilegios

    en el servidor la seguridad es mas elevada

    Quizas debas cambiar el usuario con el cual configuras el Application Pool asignado al web site en el IIS con un user que sea admin de la pc, pero sigo pensando que no es una accion que sea recomendada realizar con un desarrollo web

    Esto se podria realizar con alguna comando de WMI o quizas de PowerShell de forma remota

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 14 de enero de 2020 23:33
  • Ok entiendo pero solo es para hacer un prueba no se usara, el usuario que tengo es administrador pero tampoco me dejo sabras que debo investigar para concluir esta practica?

    ivxn25

    miércoles, 15 de enero de 2020 0:02