Cómo instalar un programa en todos los equipos de una organización de forma automática y transparente para los usuarios. Los equipos pertenecerán a un dominio Active Directory. Crearemos una directiva que permita distribuir un software concreto, por ejemplo Microsoft .NET Framework y, como ejemplo, aplicaremos un filtro WMI para que el software se distribuya sólo en equipos con el sistema operativo Windows 7.

Requisitos para distribuir software de forma automática en equipos Windows

Dominio Active Directory de Windows Server y equipos clientes agregados a dominio

El requisito principal es que debemos disponer de un dominio Active Directory (Directorio Activo) de Microsoft Windows Server. Para ello tendremos, al menos, un servidor con Windows Server 2008, 2012, 2016, 2019 o 2022. En dicho servidor tendremos instalado el rol de Servicios de dominio de Active Directory, como indicamos en el siguiente artículo:

El otro requisito indispensable es que los equipos en los que queramos instalar el software deberán pertenecer al dominio anterior. En el siguiente artículo explicamos cómo agregar un equipo Windows a un dominio Active Directory:

Descargar y preparar software a instalar en equipos mediante directiva

El software que queramos instalar deberá tener un programa de instalación que permita la instalación «silenciosa» (quiet), sin que el instalador solicite información a los usuarios. Casi todos los programas actuales incluyen el modo de despliegue «silencioso», usando parámetros en el instalador.

Para nuestro caso instalaremos de forma desatendida, transparente y silenciosa el software Microsoft .NET Framework 4.5.2, cuyo instalador habremos descargado previamente desde su web oficial. Descargaremos siempre la versión offline (sin conexión), del instalador completo de la aplicación a instalar:

Descargar y preparar software a instalar en equipos mediante directiva

En el caso de Microsoft .NET Framework 4.5.2, nos descargará el fichero de instalación NDP452-KB2901907-x86-x64-AllOS-ENU.exe. Dicho instalador permite el parámetro /q (quiet), con el que se ejecutará y se instalará sin pedir datos al usuario, de forma «silenciosa».

Una vez descargado el instalador, lo moveremos a una carpeta a la que todos los usuarios tengan acceso de lectura. Se puede usar, por ejemplo, la carpeta NETLOGON, que ya viene compartida al crear el dominio. El instalador quedaría en:

\\proyectoa.local\NETLOGON\software\NDP452-KB2901907-x86-x64-AllOS-ENU.exe

Siendo «proeyectoa.local» el nombre del dominio Active Directory de nuestra organización.

Podremos simplificar el nombre del ejecutable, cambiándolo a NETFramework4_5_2.exe, para que resulte más fácil de recordar cuando pase un tiempo y sigamos teniendo la directiva aplicada, quedando:

\\proyectoa.local\NETLOGON\software\NETFramework4_5_2.exe

Descargar y preparar software a instalar en equipos mediante directiva

Nos aseguraremos de que la carpeta donde ubiquemos el programa de instalación tiene los permisos correctos para que todos los usuarios del dominio la vean, al menos de lectura:

Descargar y preparar software a instalar en equipos mediante directiva

Crear script .bat que ejecute el instalador con los parámetros deseados

En nuestro caso vamos a ejecutar el instalador desde la opción de ejecución de scripts de la directiva. Por ello crearemos un script .bat que ejecutará, a su vez, el instalador de Framework .NET.

Aprovecharemos para pasarle los parámetros que deseemos al instalador, como el parámetro /q para que sea silencioso y también el parámetro /norestart para que el equipo no se reinicie sólo tras la instalación.

Crearemos el script en la misma ubicación que el fichero .exe del instalador, con el siguiente contenido:

El script anterior accederá a la carpeta de red donde tenemos el instalador y lo ejecutará con los parámetros /q /norestart.

Guardaremos el script anterior con el nombre «instalar_silencioso.bat» en la misma carpeta que el instalador.

Crear directiva para distribuir software de forma automática en equipos Windows

Una vez preparado el instalador y colocado en una carpeta de la red con acceso para todos los usuarios, accederemos al servidor del dominio, a uno de los controladores de dominio, y agregaremos una nueva directiva desde «Herramientas administrativas» – «Administración de directivas de grupo»:

Crear directiva para distribuir software de forma automática en equipos Windows

Desplegaremos nuestro bosque y nuestro dominio y pulsaremos con el botón derecho del ratón sobre «Objetos de directiva de grupo», eligiendo «Nuevo» en el menú emergente:

Crear directiva para distribuir software de forma automática en equipos Windows

Introduciremos un nombre para la directiva, por ejemplo «Instalar_Net_Framework_4.5.2 Windows 7» y pulsaremos «Aceptar»:

Crear directiva para distribuir software de forma automática en equipos Windows

Pulsaremos con el botón derecho del ratón sobre la nueva directiva creada y elegiremos «Editar» en el menú emergente:

Crear directiva para distribuir software de forma automática en equipos Windows

para ejecutar un programa/script tendremos varias opciones. Elegiremos la que se ajuste a nuestras necesidades. Algunas de las opciones:

  • Se puede indicar que el programa/script se ejecute cuando se arranque el equipo, sin incluso llegar a iniciar sesión el usuario. Para ello usaremos la rama «Configuración del equipo». En este caso, el programa se ejecutaría con las credenciales del usuario SYSTEM, dado que no se ha iniciado sesión de otro usuario:
Crear directiva para distribuir software de forma automática en equipos Windows
  • Otra opción es usar la rama «Configuración de usuario», en cuyo caso la aplicación/script sólo se ejecutará cuando un usuario inicie sesión en el equipo:
Crear directiva para distribuir software de forma automática en equipos Windows
  • Nosotros hemos optado por realizar un pequeño script .bat que ejecute, a su vez, el instalador con los parámetros correspondientes, pero también existe la opción de usar un instalador MSI específico y usar el despliegue por directiva pero desde la rama «Directivas» – «Configuración de software» – «Instalación de software» y eligiendo «Nuevo» – «Paquete», esta opción quizá sea más eficiente que la anterior, pero requerirá de un fichero de instalación MSI específico y válido para desplegar por directiva:
Crear directiva para distribuir software de forma automática en equipos Windows

En nuestro caso optamos por ejecutar un script (.bat) que a su vez ejecute el instalador, pasándole como parámetro el modo silencioso. Y optamos por la ejecución al arrancar el equipo, para que el software se instale aunque el usuario no haya iniciado sesión. Por ello, accederemos a la rama «Configuración del equipo» – «Directivas» – «Configuración de Windows» – «Scripts (inicio o apagado)» y haremos doble clic sobre «Inicio»:

Crear directiva para distribuir software de forma automática en equipos Windows

En «Scripts», pulsaremos en «Agregar»:

Crear directiva para distribuir software de forma automática en equipos Windows

Pulsaremos en «Examinar» para buscar la ruta donde tengamos el script .bat que ejecutará el instalador:

Crear directiva para distribuir software de forma automática en equipos Windows

Agregaremos la ruta y el nombre del fichero de script instalar_silencioso.bat y pulsaremos «Aceptar»:

Crear directiva para distribuir software de forma automática en equipos Windows

Guardaremos los cambios pulsando «Aceptar»:

Crear directiva para distribuir software de forma automática en equipos Windows

Cerraremos el editor de directivas.

Crear filtro WMI para aplicar una directiva sólo a equipos con Windows 7

Como ejemplo, aplicaremos la directiva a todos los equipos de la organización que tengan el sistema operativo Windows 7, para ello crearemos un filtro WMI. Desde «Filtros WMI», pulsaremos con el botón derecho y elegiremos «Nuevo…»:

Crear filtro WMI para aplicar una directiva sólo a equipos con Windows 7

Introduciremos el nombre para el filtro WMI y pulsaremos en «Agregar»:

Crear filtro WMI para aplicar una directiva sólo a equipos con Windows 7

Agregaremos el filtro WMI, en nuestro caso, filtraremos los equipos cuya versión de sea la :

Crear filtro WMI para aplicar una directiva sólo a equipos con Windows 7

Guardaremos los cambios y ya tendremos el filtro WMI creado.

Volveremos a la edición de la directiva desde la Administración de directivas de grupo, para agregarle el filtro WMI creado. Haremos doble clic sobre la directiva y en la pestaña «Ámbito», en la parte inferior, seleccionaremos el filtro WMI creado en «Filtrado WMI»:

Crear filtro WMI para aplicar una directiva sólo a equipos con Windows 7

Asignar directiva a Unidad Organizativa y aplicar

Una vez creada la directiva y asignado el filtro WMI, deberemos indicar en qué Unidad Organizativa se aplicará la directiva. Puesto que hemos usado la rama de equipos, asignaremos la directiva a la unidad organizativa (o unidades organizativas) que contengan equipos, en nuestro caso a «Equipos».

Para ello, desde la Administración de directivas de grupo, pulsaremos con el botón derecho del ratón sobre la unidad organizativa a la que queramos aplicar la directiva y elegiremos en el menú emergente «Vincular un GPO existente…»:

Asignar directiva a Unidad Organizativa y aplicar

Elegiremos la directiva creada «Instalar_Net_Framework_4.5.2 Windows 7»:

Asignar directiva a Unidad Organizativa y aplicar

Una vez elegida la directiva, se aplicará directamente a todos los equipos (o usuarios si hemos elegido esta rama) que contengan la unidad organizativa y las unidades organizativas que dependan de esta. Teniendo en cuenta que sólo se aplicará a equipos que cumplan el filtro WMI, es decir, equipos con el sistema operativo Windows 7:

Asignar directiva a Unidad Organizativa y aplicar

A partir de ahora, cuando un equipo perteneciente a la UO «Equipos» arranque, si tiene el sistema operativo Windows 7, se aplicará la directiva y ésta instalará el software Microsoft .NET Framework sin que el usuario note nada, de forma transparente.

Si queremos revisar que la directiva se haya aplicado, además de consultar en Agregar y quitar programas (Aplicaciones y características) que aparece instalado .NET Framework 4.5.2, podremos ejecutar el siguiente comando en algún equipo cliente con Windows 7:

gpresult /r

Nos devolverá las directivas aplicadas y las no aplicadas si no cumple con el filtro WMI o cualquier otro filtro:

Asignar directiva a Unidad Organizativa y aplicar