Si usas un equipo windows como servidor de algún tipo puede que te interese que un programa en concreto se cargue nada más iniciar el equipo.

Mira que te gusta complicar las cosas. Pues si quieres abrir un programa al encender el equipo, lo abres y punto. ¿Cuál es la complicación?
Teclado

Pues la complicación es que puede que necesites automatizar esa apertura porque el equipo lo usan varios usuarios. O incluso quieres que se cargue sin necesidad de abrir la sesión de un usuario en concreto y que esté corriendo en segundo plano como servicio. En este artículo veremos varias formas de conseguirlo de forma sencilla, cada una con sus ventajas y sus inconvenientes, y además vamos a dividir estos métodos en dos grupos: Un primer grupo en el que el programa deseado se abriría al iniciar la sesión del usuario y un segundo grupo en el que ni siquiera haría falta abrir una sesión para que el programa se ejecutara.

Métodos en los que hace falta abrir la sesión del usuario.

1. Opción cutre-salchichera. Abrir el programa automáticamente con un acceso directo.

Y sí… aunque esta primera opción sea cutre-salchichera (y de hecho es heredada de los tiempos de Windows 95) es tremendamente efectiva. Imaginemos que lo que queremos que se abra nada más poner nuestro usuario y contraseña sea Microsoft Word, por poner un ejemplo (Podríamos hacerlo con cualquier otro programa, por supuesto).

¿Cómo haríamos? Pues lo primero de todo es tener copiado un acceso directo al programa que queremos que se inicie al iniciar sesión. En nuestro ejemplo, lo que podríamos hacer sería localizar el «Microsoft Word» en el menú inicio y pulsar sobre el con el botón derecho hasta que nos salga un menú. Pulsaríamos en «Más» y luego en «Abrir ubicación de archivo».

Abrir ubicación del archivo

Eso nos abriría la carpeta que contiene el acceso directo al programa. Podemos darle con el botón derecho y pulsar en la opción «Copiar» para copiarlo en el portapapeles.

Copiar acceso directo

Ahora debemos pegar ese acceso directo en una carpeta en concreto. Debemos irnos a la carpeta en la que el sistema operativo coloca los accesos directos a todos los programas de nuestro usuario. Para ir ahí sólo tenemos que abrir una carpeta cualquiera del ordenador y en la barra dónde aparece la ruta de la carpeta, teclear %appdata% y pulsar enter:

¡¡¡¿Qué?!!! ¿Pero qué carpeta es esa? Eso no es "C:" ni ninguna unidad que tenga yo en el ordenador.

Efectivamente, Usuario Anónimo. No se trata de una carpeta convencional. Para que nos entendamos, esa «carpeta» es algo así como un acceso directo que nos lleva a la ruta que deseamos. Fíjate, si yo en la barra de ruta tecleo eso, de esta forma:

Appdata

Al pulsar «enter» la ruta cambiará de inmediato a esta otra forma.

Roaming

Como véis, en la ruta aparece mi nombre de usuario, que en vuestro caso será el que estéis usando vosotros. Por eso para no liaros, prefiero que vayaís a la ruta de la forma que estoy explicando.

Una vez dentro, debeís de ir a la carpeta «Microsoft», y luego pulsar sobre «Windows», «Menú inicio», «Programas» e «Inicio», de tal forma que os quedará en la barra de direciones algo similar a esto:

Inicio

Ahí dentro tendremos los programas que arrancan al iniciar el ordenador, aunque lo más probable es que no haya nada en esa carpeta. Pulsamos el botón derecho en alguna parte vacía de la carpeta y pulsamos en «pegar» para pegar el acceso directo que hemos copiado anteriormente.

Pegar

Y listo. Con tener el acceso directo en esa carpeta nos vamos a asegurar que ese programa encienda siempre cuando iniciemos nuestro usuario.

Oye… Y si quiero que un programa arranque cuando inicie una sesión con cualquiera de los usuarios del equipo. ¿Esta opción me puede servir?

Pues sí. Simplemente tenemos que pegar el acceso directo en esta otra ruta:

c:\ProgramData\Microsoft\Windows\Menú Inicio\Programas\Inicio

Con eso, estaremos obligando al programa a iniciarse en todos los usuarios del ordenador cuando inicien su sesión. Eso sí: el programa iniciará tal y cómo lo hayan configurado cada uno de los usuarios. Si, por ejemplo, hacemos que se inicie Dropbox, cuando se encienda lo hará con la cuenta de usuario y las configuraciones que cada usuario haya puesto por defecto en su sesión (no abrirá la misma cuenta y la misma configuración en cada uno de los usuarios). Para que se encienda con la misma configuración en cualquiera de los usuarios del ordenador os adelanto que la solución está en el punto 3.

2. Opción elegante: Inicio a través del administrador de tareas

Si os pareció enrevesada la primera opción, agarraos los machos que vienen curvas. Ahora vamos a añadir la aplicación que queremos que se abra al arrancar nuestra sesión en la carpeta «inicio» del administrador de tareas. Esto hará que la tarea se marque para ejecutarse en el inicio del sistema, por lo que el resultado será similar al del punto anterior.

Administrador de tareas
Por ejemplo, todas estas aplicaciones que veis en la imagen se ejecutan al inicio en este equipo.
Uy… pues yo ya veo un problema. No hay ningún botón en el administrador de tareas que permita añadir aplicaciones al inicio, y tampoco encuentro nada en su menú.

Ahí le has dado, Usuario Anónimo. No se puede añadir una aplicación en ese menú así como así. Hay que hacerlo manualmente toqueteando en el registro. Debemos abrir el menú inicio y sin pulsar en ningún icono teclear directamente «Regedit».

Editor de registro

Pulsamos en la aplicación regedit (no va a hacer falta ser administrador) y dentro de ella nos vamos a la siguiente ruta:

Equipo\HKEY_CURRENT_USER\Software\Microsoft\windows\CurrentVersion\Run

Pulsamos con el botón derecho en alguna zona vacía del recuadro de la derecha y seleccionamos «Nuevo» – «Valor de cadena».

Nuevo valor de cadena

Ahora simplemente debemos agregar en el cuadro superior el nombre de la aplciación que queremos que se ejecute al arrancar el sistema y en el inferior la ruta que lleva al archivo ejecutable (Con ejecutable incluído en la ruta). Quedaría algo como ésto.

Editar cadena

Aceptamos el cuadro de diálogo y listo. Si nos vamos al administrador de tareas veremos la aplicación en el inicio. Para comprobarlo pulsamos con el botón derecho en alguna zona vacía de la barra de tareas y luego pulsamos en «administrador de tareas».

Administrador de tareas

Ahí veremos cómo la aplicación que hemos añadido está en el la pestaña «inicio».

Apps al inicio

Esto asegura que la aplicación se incie al iniciar la sesión del usuario que está usando este método, pero hay un truco para que esa aplicación se abra al iniciar sesión sea cual sea el usuario: Debemos hacer exactamente lo mismo que hemos hecho antes, pero añadiendo el programa a esta ruta:

Equipo\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

Entonces, si se abre el programa sea cual sea el usuario del ordenador ¿para qué nos vas a enseñar otro método más?

Pues precisamente por eso. Hace falta iniciar sesión para que este método funcione. Muchas veces puede interesar que un programa se ponga en marcha antes de iniciar cualquier sesión de usuario y que esté funcionando sin que muestre nada en pantalla. Esto se hace mucho en servidores. Te voy a poner un ejemplo.

En mi trabajo necesito que una carpeta de red se sincronice con una nube de internet (No es Dropbox, pero es algo muy similar, que se llama «Nextcloud»). Imagínate que por cualquier motivo, uno de los administradores necesita reiniciar el servidor y en cuanto éste se enciende se loga con su usuario. Al logarse con su usuario, ese «Dropbox» que tengo configurado desde mi usuario no se ejecutaría (funcionaría el que tenga configurado en su propia cuenta, que no tiene que tener el mismo contenido que el mío). Por eso a veces, dependiendo del uso que se le de al equipo, es muy conveniente que un programa en concreto funcione como «Servicio», para que sea cual sea el usuario que tenga abierta la sesión en el equipo (o incluso aunque nadie haya abierto sesión) el programa se inicie y funcione correctamente en el fondo.

Así que allá vamos. Veamos como configurar un programa normal para que arranque como servicio.

Método en el que no hace falta abrir la sesión de ningún usuario.

3) Opción Pro: Hacer que un programa arranque como servicio en segundo plano.

Oye… ¿Qué es eso de que "Arranca en segundo plano"? ¿Vas a ponerlo en una dimensión paralela, en otro plano de la realidad o algo así?

Pasas demasiado tiempo viendo programas de misterio, Usuario Anónimo. Lo de ejecutarlo «en segundo plano» significa que no vamos a poder usar ni interactuar con el programa y que el programa se ejecutará en el fondo del sistema, sin que lo podamos ver. El ordenador simplemente lo ejecutará al inicio, pero no nos va a mostrar ninguna pantalla ni icono mientras esté ejecutándose este programa. Si el programa tiene algún tipo de «registro» en algún archivo, podremos revisarlo para ver cómo está funcionando. Incluso si vemos algún problema podemos parar el servicio, ejecutar el programa de la forma habitual, y una vez solucionado el problema parar el programa e iniciarlo de nuevo como servicio, pero mientras el programa sea un servicio del equipo y se esté ejecutando como tal, no podremos interactuar con él.

Así que vamos al lío. Necesitamos lo siguiente:

  • Lo fundamental: necesitamos un programa que queremos que se ejecute como un servicio en el ordenador (pongamos por ejemplo dropbox). Debemos configurarlo con nuestro usuario para que funcione correctamente.
  • Debemos iniciar el sistema con una cuenta de administrador (Aunque no sea la misma en la que está configurado el dropbox). Por cierto, este método es válido de windows XP en adelante, así que en cualquier sistema Windows actual os va a funcionar (tanto versiones «home» como «pro» o «server»).
  • Necesitamos un programa libre llamado «NSSM», acrónimo de «The Non-Sucking Service Manager», que nos permitirá crear ese servicio a partir del programa deseado. No os preocupéis, no tenéis que pagar nada por él. Es gratuíto.

Una vez que tengamos Dropbox configurado correctamente, lo que haremos será descargarnos el NSSM de su página web (en el momento de escribir estas líneas, su última versión es la 2.24). Una vez descargado, nos encontraremos con un archivo zip que contiene una estructura tal que así.

Win64

Descomprimimos todo en la carpeta raíz del disco duro (directamente en c:). Ahora lanzamos un terminal abriendo el menú inicio y tecleando «CMD». Una vez abierto el símbolo de sistema, debemos ir a la ruta de la carpeta que acabamos de descomprimir, que es ésta.

C:\nssm-2.24\win64

y una vez ahí ejecutaremos el siguiente comando:

nssm.exe install dropbox

Nssm

Nada más darle a «Enter», te saldrá un mensaje que indica que necesita una cuenta de administrador para instalar el servicio. Así que en la ventana que nos sale les diremos que sí.

Control cuentas usuario

Ahora por fin podremos ver el interfaz del programa. Debemos cubrir los siguientes parámetros.

  • Path: Ahí pondremos la ruta hacia el archivo ejecutable del programa que nos interesa ejecutar como servicio.
  • Startup directory: Normalmente es la ruta dónde se encuentra el ejecutable.
  • Arguments: lo dejamos en blanco.
  • Service Name: Ponemos el nombre del programa que queremos convertir en servicio. en este caso pondremos «Dropbox».
Nssm application

En la pestaña «Details» nos interesa sobre todo el desplegable de abajo, que se llama «Startup type». Este desplegable nos permite escoger cómo se iniciará el programa (automáticamente nada más encenderse el ordenador, de forma retrasada o de forma manual). En este caso lo dejaremos en «Automático».

Nssm details

Ahora viene una parte importante. Debemos seleccionar quién enciende el programa. Imaginaos que tengo dropbox instalado en el ordenador y en el mismo equipo tengo configurados dos usuarios diferentes (Fulanito y Menganito). Cada uno tiene su cuenta de dropbox configurada en su usuario. Si le digo al programa que abra el programa con el usuario de «Fulanito», el dropbox de Fulanito estará corriendo de fondo sea cuál sea el usuario que haya iniciado la sesión, pero si le digo que debe abrirlo con la sesión de «Menganito» será el usuario del dropbox de Menganito el que se esté sincronizando contínuamente en lugar del de «Fulanito». Así que es muy importante definir bien qué usuario va a abrir la aplicación que vamos a convertir en servicio.

NSSM log on

Ahora sólo tenemos que hacer click en «install service» y ya tendremos el servicio preparado para funcionar. Podemos comprobar que todo ha ido bien pulsando la combinación de teclas «Windows + R» y escribiendo «services.msc».

services.msc

Nos aparecerá la lista de servicios que tenemos actualmente en el equipo. Sólo tendremos que buscar el que hemos agregado, que recordad, en el ejemplo que estamos poniendo se llama «dropbox».

Servicios

Ahí podremos ver algunas propiedades interesantes del servicio que hemos creado. Sobre todo nos interesarán dos pestañas. En la primera llamada «general», podremos ver el tipo de inicio que tendrá nuestro servicio. Supongo que la gran mayoría de las veces os interesará que esté en «Automático», que es lo que hemos configurado unos pasos más atrás. Si pulsáis en el botón «Iniciar» el programa empezará a funcionar sin que nosostros veamos nada en la pantalla. Podéis comprobarlo yendo a la página web de Dropbox con vuestro usuario y contraseña y añadiendo una carpeta vacía. Ésta debería aparecer en la carpeta de dropbox que tenéis sincronizada en vuestro equipo, aunque aparentemente Dropbox no aparece en la pantalla por ningún lado (ni en la barra de tareas ni en el área de notificaciones).

Inicio automático

En todo caso indicaros que también puede que os interese en alguna ocasión configurar el inicio del programa como «inicio retrasado». Este tipo de inicio permite esperar a que se carguen otros programas y configuraciones en el equipo antes de iniciar el programa que deseamos. (No hace falta en el caso de Dropbox, pero sí puede interesaros en algún otro programa).

Elegir inicio

La otra pestaña interesante es la de «Iniciar sesión». Ahí podréis volver a configurar qué usuario es el que arranca el programa que estamos ejecutando como servicio. Si cambiáis el usuario, será otro usuario del ordenador el que «encienda» el programa en segundo plano, con las configuraciones que tenga él definidas.

Iniciar sesión NSSM

Y esto es todo. Estas son las tres formas más útiles que uso para iniciar progamas nada más encender un equipo. ¿Cónoceis alguna otra? ¿habéis hecho algo de esto con algún progama interesante y queréis compartir la experiencia? Os animo a dejar un comentario, que a lo mejor vuestra experiencia le da también ideas a algún otro lector.

Share