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.
- Crear directiva para distribuir software de forma automática en equipos Windows.
- Crear filtro WMI para aplicar una directiva sólo a equipos con Windows 7.
- Asignar directiva a Unidad Organizativa y aplicar.
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:
- Agregar equipos Windows XP y Windows 7 a un dominio Windows Server 2003.
- Agregar el equipo Windows 10 a dominio Windows Server 2012.
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:
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
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:
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:
1 2 |
pushd \\proyectoa.local\netlogon\software\Software\NETFramework4_5_2 NETFramework4_5_2.exe /q /norestart |
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»:
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:
Introduciremos un nombre para la directiva, por ejemplo «Instalar_Net_Framework_4.5.2 Windows 7» y pulsaremos «Aceptar»:
Pulsaremos con el botón derecho del ratón sobre la nueva directiva creada y elegiremos «Editar» en el menú emergente:
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:
- 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:
- 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:
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»:
En «Scripts», pulsaremos en «Agregar»:
Pulsaremos en «Examinar» para buscar la ruta donde tengamos el script .bat que ejecutará el instalador:
Agregaremos la ruta y el nombre del fichero de script instalar_silencioso.bat y pulsaremos «Aceptar»:
Guardaremos los cambios pulsando «Aceptar»:
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…»:
Introduciremos el nombre para el filtro WMI y pulsaremos en «Agregar»:
Agregaremos el filtro WMI, en nuestro caso, filtraremos los equipos cuya versión de sea la :
1 2 3 |
select Version, ProductType from Win32_OperatingSystem where Version like "6.1.%" and ProductType = "1" |
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»:
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…»:
Elegiremos la directiva creada «Instalar_Net_Framework_4.5.2 Windows 7»:
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:
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: