Exportar e implementar un diseño predeterminado de la Pantalla de Inicio en Windows 8.1, utilizando PowerShell y Políticas de Grupo

Hace ya algunos días, Microsoft lanzó su primera Vista Preliminar de Windows 8.1 al público, para que los que deseen, lo instalen a través de la Tienda, o bien descargando el .ISO.
Como era de esperarse, este Preview vino cargado de nuevas características, y por supuesto, problemas y polémicas en los Foros oficiales de Microsoft Community / TechNet.

Aunque en este Blog, y en otros espacios donde tengo y tendré la fortuna de escribir, intentaré escribir sobre la mayor cantidad de características incluidas en la actualización, empezaré con una no tan básica, pero que definitivamente me parece algo bastante útil, sobre todo en entornos de implementación en la empresa.

El proceso consiste en personalizar la nueva Pantalla de Inicio desde una máquina con Windows 8.1, a continuación, exportar esta configuración en un XML utilizando PowerShell, y por último, aplicar una de las nuevas políticas de grupo integradas con Server 2012 R2 para que todo el resto de máquinas tengan este mismo diseño, pero además, que no puedan modificarlo; así se asegurará un solo estándar sobre la Pantalla de Inicio en todos los usuarios.

Requerimientos

– Un equipo con Windows Server 2012 R2, con Controlador de Dominio. Si aún no lo tienen, pueden hacer la descarga desde aquí: Try Microsoft’s Cloud OS Vision

– Dos equipos con Windows 8.1 que estén unidos al dominio. Si aún no tienen Windows 8.1, pueden descargar la imagen ISO desde aquí:
http://windows.microsoft.com/es-es/windows-8/preview-download

Personalizando la Pantalla de Inicio

El primer paso, es simplemente personalizar todos los Tiles de la Pantalla de Inicio buscando un estándar para todos los usuarios; esto implica reorganizar iconos, anclar aplicaciones, y nombrar los grupos.

Así es como luce la Pantalla de Inicio, en una instalación recién hecha de Windows 8.1:

image

Para este post, y siguiendo este primer paso, lo que hice fue organizar los iconos en tamaño y posición, según como me gustaría verlos en todas las máquinas, y además le puse nombres a estos grupos, para identificar los tipos de aplicaciones que tendría:

image

*Nota: Hay que tener en cuenta que ni el Fondo de Pantalla, ni el Diseño interno de la Pantalla de Inicio se copiarán con este procedimiento. Para eso habría que utilizar algún metodo diferente que copie toda la configuración del Perfil.

Exportando diseño con PowerShell

Cuando hayamos personalizado la Pantalla de Inicio a nuestro gusto estándar, debemos crear el XML que utilizará la Política de Grupo para replicar esta configuración en todos los demás equipos que se conecten y se habiliten en el dominio. Para exportar, PowerShell en Windows 8.1 y Server 2012 R2, ahora incluye un nuevo Cmdlet llamado Export-StartLayout, que a través de unos sencillos parámetros, generará el .XML o .BIN (Si es que se fuese a implementar en una imagen de Windows).

*Nota: Lo del .BIN y el proceso para hacer esto sobre una imagen offline (.WIM), lo tocaré en un futuro artículo.

Desde el primer equipo donde se hicieron los cambios en la Pantalla de Inicio, hacemos clic derecho en el botón de Inicio, y seleccionamos Windows PowerShell (Administrador) para ejecutar el símbolo de PowerShell con privilegios elevados:

image

En la ventana de PowerShell, ejecutamos el siguiente comando:

Export-StartLayout –Path “<RutaXML>Nombre.xml” –As XML

Donde <RutaXML> es el directorio que almacenará el archivo XML, y Nombre.xml es como lo llamarán. Para este post, que lo almacenaré en mi Escritorio, y lo llamaré StartScreen, sería:

Export-StartLayout –Path “C:UsersscalderonDesktopStartScreen.xml” –As XML

image

*Nota: Clic en la imagen para verla en tamaño normal.

Se nos creará un XML que contiene metadatos y configuración relevante para que Windows reconozca la configuración de la Pantalla de Inicio:

image

Cada aplicación la reconoce por el AppID que se genera con su instalación; esto podríamos consultarlo con otro Cmdlet de PowerShell llamado Get-StartApps o bien, buscando el respectivo AppID desde el Registro de Windows, leyendo el valor de AppUserModelld:

image

*Nota: No entraré en detalle sobre lo del AppID, pues es un tema totalmente nuevo del que no tengo conocimiento y que apenas estoy investigando.

Para terminar este paso, debemos copiar el archivo XML que creamos a un directorio compartido dentro del Equipo donde está el Controlador de Dominio. Para este post, el directorio compartido es: \DCStartLayout

Creando y aplicando la Política de Grupo

Desde el Equipo Server 2012 R2, donde está el Controlador de Dominio, y nuestro archivo XML, debemos crear la política para que cada equipo tenga exactamente la misma configuración de Tiles en su Pantalla de Inicio, impidiendo además su personalización manual.

Para generar la Política, seguimos estos pasos:

1. Desde el Server Manager, clic en Herramientas en la parte superior derecha y seleccionamos Administrador de Políticas de Grupo.

2. En la Consola de Administración, expandimos nuestro Forest o Bosque, después el nodo de Dominios, nuestro Dominio y finalmente hacemos clic derecho en Política de Dominio Predeterminada y seleccionamos: Editar:

image

3. En el Editor de Políticas de Grupo, expandimos:
Configuración de UsuarioPolíticasPlantillas AdministrativasMenú de Inicio y Barra de Tareas

En el panel derecho, buscamos la plantilla de Diseño de Pantalla de Inicio (Start Screen Layout) y hacemos doble clic para abrirlo:

L3

4. Seleccionamos Habilitado en la plantilla, y debajo de Archivo de Diseño de Inicio, le indicamos la ruta compartida donde se encuentra nuestro XML. Para este caso, por ejemplo, la mía sería: \DCStartLayoutStartScreen.xml

image

Clic en el botón Aplicar y luego Aceptar para que la Política quede implementada.

Probando la Política

Para poder verificar que el Diseño haya quedado implementado, debemos reiniciar, o bien actualizar nuestras políticas de grupo con Gpupdate /force y reiniciar.

Para ilustrar un poco, en un segundo equipo, antes de aplicarse la política, este es el diseño predeterminado de los Tiles, con una personalización adicional a los colores de fondo:

image

Al actualizar las políticas de grupo con Gpupdate /force y reiniciar, este es el aspecto:

image

Como ven, aunque se mantuvo los colores y diseños de fondo, los Tiles y grupos se acomodaron justo como lo especifiqué antes de exportar el XML desde el otro equipo.

Al intentar arrastrar alguna de las aplicaciones, lo normal es que el Tile intente reaccionar, pero no dejará hacer nada:

image

Tampoco expande ninguna opción emergente al hacer clic derecho sobre los Tiles, ni renombrar grupos. La Pantalla de Inicio mantendrá el mismo estándar, hasta que por políticas se diga lo contrario.

[Appendix]: Explorando el Registro con esta política

Para los que quizá están interesados en ver cómo se puede reproducir esto manualmente, importando ficheros de registro, Windows crea dos valores: LockedStartLayout y StartLayoutFile ubicados en la clave:

HKEY_CURRENT_USERSoftwarePoliciesMicrosoftWindowsExplorer

image

LockedStartLayout, es un valor de tipo REG_DWORD, que por lo general recibe contenido binario. Se encarga de prohibir al usuario cualquier tipo de personalización sobre el diseño importado en la Pantalla de Inicio, es decir, que no se pueda hacer clic derecho, mover las aplicaciones de lugar, entre otras. El contenido que recibe es de “1” para indicar habilitado, o “0” para deshabilitar esto.
En caso de que el contenido esté en cero “0”, el usuario mantendrá el mismo diseño, pero podrá realizar modificaciones a su gusto.

StartLayoutFile, es un valor de tipo REG_SZ, es decir, un valor de Cadena. Su contenido será el directorio –local o de red- donde se encuentra el archivo XML; por supuesto, hay que referenciar el nombre exacto del archivo, tal cual se escribe en la plantilla del Editor de Políticas de Grupo.

Si quisiéramos aplicar esta política utilizando estos valores de Registro, es necesario navegar hasta HKEY_CURRENT_USERSoftwarePoliciesMicrosoftWindows, hacer clic derecho, crear una nueva Clave, llamarla Explorer y dentro de ésta, crear los dos valores explicados anteriormente con su respectivo contenido. Después de esto, basta con reiniciar el equipo y habrá quedado implementada.

La ventaja de hacerlo manualmente, es que podría ser mucho más flexible, no requeriríamos de un Controlador de Dominio, y la podríamos enviar a través de algún Script o bien, programáticamente.

*Nota: Cabe aclarar, que como es natural, utilizando el Editor de Políticas Locales (gpedit.msc) también se puede crear esta política.

Espero les sea de utilidad.

Checho

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *