none
ejecutar aplicaciones y comandos con permisos con srcript bat

    Question

  • Tengo la idea de crear un archivo .bat que me permite ejecutar varios comandos y al final una aplicación. Sin embargo tengo las siguietnes dudas:
    -al iniciarse la aplicación, la ventana 'dos' se queda en segundo plano mostrandose. Me interesaría que no se mostrase, es decir, que solo apareciese la aplicación.
    -necesito ejecutar la aplicación con permisos de administrador. ¿existe algun comando o forma de que el script se marque con permisos de administrador?
    -Por último, tambien quiero hacer que una segunda aplicación se ejecute, pero solo cuando finalice la primera. ¿como hago esto?

    saludos
    Saturday, March 13, 2010 6:48 PM

Answers

  • Tienes que poner la ruta y nombre del fichero bat, no sólo el nombre. Además, si la ruta tiene espacios, deberás encerrarla entre comillas, que al estar dentro de comillas, deben ser dobles:

    set objshell = createobject("wscript.shell")
    objshell.run """c:\Tu Ruta\tuscript.bat""",vbhide
    

     

     


    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)
    • Marked as answer by titosanxez Monday, March 22, 2010 9:25 PM
    Monday, March 22, 2010 7:53 AM
    Moderator

All replies

  • Hola!
    Echa un vistazo a este artí____, te será de ayuda!



    Comenta si te fué útil!

    Un saludo,
    Dani Alonso
    Dani Alonso - http://www.Win2k8.com Especializado en Seguridad Informática y Sistemas Operativos para Servidores
    Monday, March 15, 2010 2:42 PM
  • Con runas he podido arreglar lo de lso permisos, pero todavía no se como hacer los puntos 1 y 3...
    Monday, March 15, 2010 3:35 PM
  • Para el punto 1, prueba ejecutando el script con el parámetro /b.
    • Ejemplo: start  /b tu_script.bat

    Para el punto 3, añade al final de tu script:


    start otro_script.bat

    exit

    Dani Alonso - http://www.Win2k8.com Especializado en Seguridad Informática y Sistemas Operativos para Servidores
    Monday, March 15, 2010 4:35 PM
  • Con la opción /b no se muestra la aplicación, pero si lo escribo:
    start "" aplicación
    se muestra la aplicación y no aparece la ventana de comandos.
    Sin embargo la siguiente línea del scritp se ejecuta, y mi intención es que no se ejecuta hasta que no finalice la aplicación que se lanza en la línea anterior. ¿cómo puedo hacer eso?
    Monday, March 15, 2010 11:09 PM
  • Start se encarga de realizar lo que corresponda con lo que se le pase; es decir, si a start le pasas un fichero MSC lo abrirá con MMC, si le pasas un TXT lo abrirá con el editor de texto predeterminado. Si le pasas un ejecutable, si éste es de windows, lo abrirá sin esperar que termine, si es un ejecutable que requiere de ventana de comandos lo abrirá en una ventana de comandos y pasará a la siguiente instrucción.

    En un bat, cuando la aplicación es Windows, la abre y pasa a la siguiente instrucción; si necesitas que espere, debes ponerle el modificador /wait:

    start /wait aplicacion

    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)
    Tuesday, March 16, 2010 12:20 PM
    Moderator
  • Efectivamente al incluir /wait la consola espera a que finalice la aplicación antes de continuar leyendo líneas. De hecho este comportamiento también se puede conseguir poniendo directamente la ruta del ejecutable, sin el comando start.
    El problema es que en este caso la ventana DOS queda latente mientras la aplicación gráfica corre. Existe alguna posibilidad de mantener este comportamiento con la ventana oculta?
    Tuesday, March 16, 2010 12:42 PM
  • Deberías usar otra cosa, como un script VbScript. ¿Qué estás haciendo exactamente? A ver si se nos ocurre algo?

    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)
    Wednesday, March 17, 2010 8:16 AM
    Moderator
  • En realidad en el script estoy haciendo varias cosas, pero la parte crítica es lanzar una máquina virtual con vmware player. El problema que tengo es que vmware necesita tener unos servicios corriendo, pero claro cada vez que arranco windows no voy a correr la maquina virtual y no quiero tener esos servicios con inicio automático.
    Así que la ide es iniciar los servicios antes de lanzar la máquina y detenerlos una vez que salga de la aplicación, con el comando sc.

    Wednesday, March 17, 2010 10:59 AM
  • Coincido con Fernando,

    La utilización de un VBScript no sería mala idea...

    Ejemplo de código:

    set objshell = createobject("wscript.shell")
    objshell.run "tuscript.bat",vbhide


    Un saludo,
    Dani Alonso
    Dani Alonso - http://www.Win2k8.com Especializado en Seguridad Informática y Sistemas Operativos para Servidores
    Wednesday, March 17, 2010 11:01 AM
  • Exacto, Dani, por ahí era por donde estaba yo iba.
    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)
    Wednesday, March 17, 2010 12:01 PM
    Moderator
  • Vale pues probare con VB, aunque no estoy familiarizado ejeje. Muchas gracias por vuestro aprote!

    saludos
    Thursday, March 18, 2010 9:18 AM
  • Con que pongas en un fichero de texto las líneas que te puso Dani, cambiando "tuscript.bat" por la ruta y nombre de tu bat y guardes el script con extensión VBS, no deberías tener ya ningún problema.

    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)
    Thursday, March 18, 2010 9:41 AM
    Moderator
  • Pues no entiendo bien que pasa, pero al ejecutar el vbscript me da error dicinedo que no encuentra la ruta del archivo, pero ya lo he comprobado unas cuantas veces y esta bien...
    El código de error es 80070002, en la línea 2 caracter 1
    Thursday, March 18, 2010 7:50 PM
  • Tienes que poner la ruta y nombre del fichero bat, no sólo el nombre. Además, si la ruta tiene espacios, deberás encerrarla entre comillas, que al estar dentro de comillas, deben ser dobles:

    set objshell = createobject("wscript.shell")
    objshell.run """c:\Tu Ruta\tuscript.bat""",vbhide
    

     

     


    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)
    • Marked as answer by titosanxez Monday, March 22, 2010 9:25 PM
    Monday, March 22, 2010 7:53 AM
    Moderator
  • ese era el problema, las comillas dobles. Solo ponia "ruta con espacios" y por eso daba fallo. Muchas gracias!

    saludos

    Monday, March 22, 2010 2:30 PM
  • ¿Entonces todas tus dudas han quedado solventadas? Si es así, no olvides marcar como "Respondido" los mensajes que te han aportado soluciones, para que sirva de referencia a quienes tengan problemas similares.

     

    Un saludo,

    Dani Alonso


    Dani Alonso - http://www.Win2k8.com Especializado en Seguridad Informática y Sistemas Operativos para Servidores
    Monday, March 22, 2010 5:10 PM
  • Hola Fernando buen dia:

    Necesito ejecutar una pequeña aplicacion en todos los equipos cliente (Windows 7 y XP) en una red de dominio Windows Server 2008. La aplicacion se lanza desde un archivo executable (.exe) y esta no requiere instalacion, basta simplemente con lanzar el ejecutable.

    El archivo executable en cuestion lo tengo almacenado en la siguiente ruta:

    P:\TEKA SERVICES\DOCUMENTOS ESCANEADOS\Archivo Ejecutable\Ejecutable.exe

    P es una unidad de red que se le crea, por medio de un script, a todos los usuarios del dominio automaticamente al iniciar sesion

    He creado un script VBS con las siguientes lineas:

    On Error Resume Next
    Set variable = CreateObject("WScript.Shell")
    variable.Run "P:\TEKA SERVICES\DOCUMENTOS ESCANEADOS\Archivo Ejecutable\Ejecutable.exe"
    WScript.Quit.

    Adicionalmente he creado una GPO en el servidor y la he configurado como corresponde en Configuracion de usuario-> Configuracion de Windows-> Script de Inicio de Sesion, vinculandola con el Scrip descrito anteriormente.

    He realizado pruebas pero al iniciar sesion no se inicia la aplicacion. Podrias por favor ayudarme a resolver este inconveniente??? de tal manera que me funcione perfectamente??? pues la verdad no se que esta mal:

    Te agradezco enormemente tu valiosa y pronta colaboracion. Saludos

    "El espiritu de lucha es lo que nos impulsa cada día a emprender nuevos retos..." Alexsc007 Bogotá - Colombia


    • Edited by Alexsc007 Monday, December 03, 2012 9:29 PM
    Monday, December 03, 2012 9:24 PM
  • Despues de tanto pedalear y pedalear, por fin encontre la respuesta a mi propio interrogante. El codigo correcto y que me funciono perfectamente es:

    Set variable = WScript.CreateObject("WScript.Shell")
    Return = variable.Run("""\\Serverteka\PUBLICO\TEKA SERVICES\DOCUMENTOS ESCANEADOS\Archivo Ejecutable\Ejecutable.exe""", 3, false)
    WScript.Quit

    Llegue a esta solucion gracias a este Blog que me encontre en las busquedas que realice, haciendo las modificaciones respectivas:

    http://trucos-masm2000.blogspot.com/2010/03/ejecutar-un-programa-con-vbscript-vbs.html

    Por lo cual agradezco a Miguel Gmail por ese gran aporte. Saludos


    "El espiritu de lucha es lo que nos impulsa cada día a emprender nuevos retos..." Alexsc007 Bogotá - Colombia


    • Edited by Alexsc007 Monday, December 03, 2012 10:46 PM
    Monday, December 03, 2012 10:44 PM