none
ejecutar aplicaciones y comandos con permisos con srcript bat RRS feed

  • Pregunta

  • 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
    sábado, 13 de marzo de 2010 18:48

Respuestas

  • 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)
    • Marcado como respuesta titosanxez lunes, 22 de marzo de 2010 21:25
    lunes, 22 de marzo de 2010 7:53
    Moderador

Todas las respuestas

  • 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
    lunes, 15 de marzo de 2010 14:42
  • Con runas he podido arreglar lo de lso permisos, pero todavía no se como hacer los puntos 1 y 3...
    lunes, 15 de marzo de 2010 15:35
  • 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
    lunes, 15 de marzo de 2010 16:35
  • 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?
    lunes, 15 de marzo de 2010 23:09
  • 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)
    martes, 16 de marzo de 2010 12:20
    Moderador
  • 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?
    martes, 16 de marzo de 2010 12:42
  • 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)
    miércoles, 17 de marzo de 2010 8:16
    Moderador
  • 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.

    miércoles, 17 de marzo de 2010 10:59
  • 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
    miércoles, 17 de marzo de 2010 11:01
  • 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)
    miércoles, 17 de marzo de 2010 12:01
    Moderador
  • Vale pues probare con VB, aunque no estoy familiarizado ejeje. Muchas gracias por vuestro aprote!

    saludos
    jueves, 18 de marzo de 2010 9:18
  • 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)
    jueves, 18 de marzo de 2010 9:41
    Moderador
  • 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
    jueves, 18 de marzo de 2010 19:50
  • 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)
    • Marcado como respuesta titosanxez lunes, 22 de marzo de 2010 21:25
    lunes, 22 de marzo de 2010 7:53
    Moderador
  • ese era el problema, las comillas dobles. Solo ponia "ruta con espacios" y por eso daba fallo. Muchas gracias!

    saludos

    lunes, 22 de marzo de 2010 14:30
  • ¿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
    lunes, 22 de marzo de 2010 17:10
  • 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


    • Editado Alexsc007 lunes, 3 de diciembre de 2012 21:29
    lunes, 3 de diciembre de 2012 21:24
  • 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


    • Editado Alexsc007 lunes, 3 de diciembre de 2012 22:46
    lunes, 3 de diciembre de 2012 22:44