Con aplicaciones viejas como S.I.A.p / SIFERE que requieren ejecutarse con un usuario administrador, siempre es un problema cuando estamos en un dominio y queremos que un usuario limitado pueda tener esos permisos elevados específicos.

Objetivos

  • Que el usuario pueda ejecutar la aplicación como administrador
  • Que el usuario no necesite conocer la contraseña de administrador

Este post explica como solucionar estos dos puntos, sin embargo, si el usuario revisa el contenido del bat, o desde el acceso directo llegue al archivo y lo edite, podrá ver el usuario y contraseña.

Para ese caso puntual me vino en mente Runas, pero cada vez que un nuevo usuario quiera acceso a la aplicación tendría que usar el flag /savecred por primera vez y eso no es automático.

Entonces gracias a una respuesta de Spiceworks por Lauren F conocí PsExec, que también permite ejecutar una aplicación en windows como otro usuario por línea de comandos y pasando la contraseña en la línea de comandos también.

Con esa solución, utilizo psexec dentro de un archivo .bat para ejecutar la aplicación:

El problema, es que si bien la aplicación se ejecuta, queda abierta una ventana de CMD donde se ve el usuario y la contraseña, para lo cual mejoré el bat:

Pero la ventana CMD no se cierra tras la apertura de la aplicación, si bien se puede cerrar y ahora no se muestran ni el usuario ni la password, me parece incómodo dejar ventanas negras por ahi, por lo cual busqué la forma de ejecutar en modo invisible.

Tras investigar un poco la solución llegó por mano de VonC en Stackoverflow, revisando su respuesta implementé la solución.

Crear un archivo invisible.vbs:

Y en nuevo archivo .bat ejecutar el .bat del programa:

De ese modo momentáneamente vemos una ventana negra CMD, desaparece y se abre la aplicación que deseemos como administrador.