Foros del Web » Programando para Internet » ASP Clásico »

Problema con Exec() de WScript.Shell

Estas en el tema de Problema con Exec() de WScript.Shell en el foro de ASP Clásico en Foros del Web. Buenas, soy nuevo en este foro pero tengo una duda relacionada con JScript que no consigo comprender... y tras buscar en google alguna solución he ...
  #1 (permalink)  
Antiguo 25/08/2008, 08:28
 
Fecha de Ingreso: agosto-2008
Mensajes: 3
Antigüedad: 15 años, 9 meses
Puntos: 0
Problema con Exec() de WScript.Shell

Buenas, soy nuevo en este foro pero tengo una duda relacionada con JScript que no consigo comprender... y tras buscar en google alguna solución he decido empezar a preguntar en foros.

Expongo el problema.

Se trata de la carga de un ASP que utiliza JScript, en este se instancia un objeto WScript.Shell y gracias al metodo Exec se ejecuta el siguiente comando "net.exe view".
Hasta aquí todo bien... funciona perfectamente siempre y cuando (y aquí el problema) solo se utilice una sola vez el objeto WScript.Shell!!!

És tan sencillo como tener una function propia llamada netview() que crea,ejecuta el metodo Exec, y lo destruye.
Si esta function la llamo dos veces no funciona... si la llamo una vez si.

He pensado que como estoy recogiendo la salida del resultado del proceso ("net view") en una fichero leyendo cáracter a cáracter, se pisa la ejecución de ambos procesos.

Pero, ¿no son procesos totalmente independientes y paralelos?
Nosé estoy muy perdido cualquier ayuda la agradeceria os dejo el código incrustado en el mensaje.

Gracias por adelantado.

David Benito.


Código:
Código:
<%

function netView(sParam)
{       
     
    //var WshShell = WScript.CreateObject("WScript.Shell"); 

    
    var WshShell = new ActiveXObject("WScript.Shell");
    var oExec    = WshShell.Exec("net view " + sParam);
    var input = "";
    
    while (true)
       {
             if (!oExec.StdOut.AtEndOfStream)
             {
                  input += oExec.StdOut.Read(1);
                  if (input.indexOf("The command completed successfully.") != -1)
                       break;
             }    
             //WshShell.Sleep(100);
       }
    
    oExec.StdIn.Write("\n");
    WshShell.Quit;
    WshShell = null;
    return netView = input;
}

var salida = netView("/domain:ntr2");
//ERROR!
var salida2 = netView("/domain:vmware");
%>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:43.