Sysinternals y Windows Deployment mejor juntos: Establecer políticas y cambios en el registro a una imagen offline de Windows 7

Hola a todos,

En ambientes empresariales es normal que cuando los equipos están bajo Tecnología Microsoft y hay un Dominio de por medio, todos los equipos que estén unidos se les crearán unas políticas de grupo para controlar comportamientos sobre sus objetos (Usuarios, máquinas, etc), así se logra estandarizar en gran parte las imágenes que se despliegan a través de la organización.

Las Políticas de Grupo tienen su propio comportamiento muy inteligente por cierto, aunque a grandes rasgos, lo único que hacen es una serie de cambios en el Registro de Windows de forma gráfica y replicarlos para todos los usuarios con unos archivos que se actualizan al iniciar sesión o al forzar las políticas de grupo con el comando gpupdate /force.

Normalmente sin embargo, no sólo se hacen configuraciones desde GPO para estandarizar o adaptar Windows a nuestro estilo o entorno, muchas veces por temas de Compatibilidad o símplemente por personalización específica también requerimos hacer cambios detallados en el Registro de Windows.

La otra cara de la moneda, es que no en todas las empresas existe Windows 7 Enterprise o Ultimate y no todo es empresa, ¿Qué pasa con el usuario hogareño que requiere administrar las máquinas con ediciones que no soportan el Editor de políticas de grupo y no hay dominio?

En la mayoría de las ocasiones tenemos dos alternativas, hacer estos cambios antes de capturar la imagen para copiar el perfil y que queden una vez instalado Windows en las estaciones de trabajo o bien hacer los cambios después de implementado Windows.

Estos procedimientos, aunque son rápidos, requieren a veces un poco más de tiempo o cuidado y por lo general, para los Profesionales de Tecnología (ITPROS), o incluso para las personas que manejan los equipos en casa, tiempo es lo que menos tienen y lo que más necesitan ahorrar.

Afortunádamente, éstos no son los unicos métodos para hacer configuraciones específicas sobre el Registro de Windows, nostros desde Windows Vista y gracias a WAIK (Específicamente a Dism) ahora podemos hacer estos y muchos otros tipos de cambios a una imagen offline (Sin conexión, no instalada), y mejor aún… gracias a Windows Sysinternals tampoco necesitamos del Editor de políticas de grupo para realizar los cambios a nivel de Registro que establezcan el objetivo de las políticas (En una gran mayoría).

En este artículo veremos cómo realizar cualquier tipo de cambio en el Registro de Windows sin necesidad de instalar completamente el sistema operativo pero además lo enfocaré a encontrar y desplegar configuraciones específicas de políticas de grupo manualmente para que tenga mucho más valor (espero).

¿Qué necesitamos?

1. Antes que nada, requerimos los archivos de instalación de Windows 7, específicamente el archivo de imagen Install.wim. Si todavía no tienen Windows 7, pueden descargar un Trial desde aquí: http://technet.microsoft.com/evalcenter/cc442495.aspx

2. Para poder desplegar alguna política modificando manualmente el Registro de Windows, debemos rastrear el comportamiento de la misma una vez aplicada, para eso debemos descargar y ejecutar Process Monitor de Sysinternals. Lo pueden descargar desde aquí: http://technet.microsoft.com/es-co/sysinternals/bb896645

3. Equipo Técnico donde se instalé el trial o una edición activada de Windows 7 Enterprise o Ultimate si queremos buscar el cambio de alguna política con Process Monitor; además de esto donde se podrá montar la imagen offline para realizar los cambios (Para esto no es necesario que sea Enterprise).

“Montando” la imagen…

Una vez tengamos todos los requisitos, ¡Hora de empezar!

Antes de cualquier cosa, tenemos que montar la imagen en algun directorio dentro del Equipo técnico, si el medio de Windows 7 está en un medio físico o imagen .ISO, debemos insertarlo en la unidad o virtualizar la unidad con aplicaciones como UltraISO en el caso de la imagen y posteriormente copiar todos los archivos al directorio creado.

Para este artículo, yo creé una carpeta llamada “7” en la Unidad C:, me quedaría: C:7 para hacer referencia a ella, una vez copiados los archivos, deberíamos ver algo similar a la siguiente captura:

image

En el mismo equipo técnico, hacemos clic en Inicio, tecleamos CMD y sobre el resultado Clic derecho y seleccionamos “Ejecutar como administrador”.

Al ejecutarse con un token administrativo, la consola de comandos debe quedar ubicada en C:WindowsSystem32, debemos ejecutar desde ahí el siguiente comando para montar la imagen: Dism /Mount-Wim /WimFile:<ImagenWIM> /Index:# /MountDir:<DirectorioMount>

Donde <ImagenWIM> se refiere al archivo de imagen .WIM que está ubicado bajo la carpeta Sources en los archivos de instalación de Windows, para este caso estaría en C:7Sourcesinstall.wim, “#” se refiere al número de índice de la imagen que queremos montar, recordemos que una sola imagen pueden contener varias imágenes, si es una Enterprise, el índice sería “1”; <DirectorioMount> se refiere a la carpeta donde queremos que esté montada la imagen de Windows que estamos referenciando, para este caso yo creé una carpeta llamada “Mount” en la unidad C:, por lo que sería C:Mount.

En este orden de ideas, para mi caso el comando sería:

Dism /Mount-Wim /WimFile:C:7Sourcesinstall.wim /Index:1 /MountDir:C:Mount

P2

*Nota: Cabe recordar que el archivo install.wim representa el nuevo formato de imágenes de Windows y es el que contiene toda la captura completa de lo que es el sistema operativo.

Una vez montada la imagen, veremos que en el directorio especificado se crearon una serie de carpetas muy familiares a cuando Windows se encuentra instalado:

image

Por ahora, no tocaremos más a Dism, ya que tenemos la imagen montada podemos empezar a inyectar configuraciones en su Registro para posteriormente guardarla y que queden al desplegar Windows.

Sobre Registry Hives

Antes de proceder a editar, es bueno recordar algo sobre los Hives, básicamente se conocen como Árboles que contienen una set de claves, subclaves y valores en el registro.

Un hive se puede ver como una plantilla para cada rama de Registro (HKCU, HLM, HKCR, etc), cuando un usuario inicia sesión, se le crea un nuevo Hive de usuario que contiene toda la configuración a nivel de Usuario, es decir ubicada en HKEY_CURRENT_USER y se toma de la plantilla NTUSER.DAT ubicada en el directorio C:UsersDefault que corresponde al usuario predeterminado en Windows 7.

Éste es el único Hive que difiere para cada usuario, pero no es el único Hive que existe puesto que casi todas las ramas del Registro tienen un Hive correspondiente y es del que todos los usuarios al instalar Windows hacen uso.

La mayoría de los Hives están en el directorio %SystemDrive%System32Config, normalmente C:WindowsSystem32Config

Lo que haremos con mucho cuidado es empezar a cargar los Hives que necesitemos según la configuración, normalmente sería el de usuario (NTUSER.DAT) para modificar todo lo que esté en HKEY_CURRENT_USER o alguno de los de máquina para modificar HKEY_LOCAL_MACHINE.

*Nota: HKEY_LOCAL_MACHINE tiene hive único para SAM, Security, System y Software, por lo que tenemos que saber cuál es el que requiere el cambio para cargarlo.

Aquí pueden ver más documentación al respecto: http://msdn.microsoft.com/en-us/library/windows/desktop/ms724877(v=vs.85).aspx

Identificando la clave de Registro a modificar con Sysinternals

Antes de proceder a cargar el Hive correspondiente de la imagen que montamos en los pasos anteriores debemos identificar qué es lo que vamos a modificar en el Registro.

Cada persona probablemente podrá saltar estos pasos puesto que por lo general, ya sabemos qué llave de registro es la que necesitamos cambiar y cómo la debemos cambiar.

Para este artículo sin embargo, pondré el ejemplo con una configuración básica a nivel de políticas que identificaré para hacer el cambio a nivel de Registro.

La política que seguiré es la de “Ocultar y deshabilitar todos los elementos del escritorio” ubicada en Configuración de usuarioPlantillas AdministrativasEscritorio en el Editor de Políticas de Grupo.

image

Existe sólo una herramienta que me ayudará a comprender cuál es el cambio cuando selecciono “Habilitada (Enabled)” y le doy a Aplicar (Apply), por supuesto, tiene nombre propio: Process Monitor de Sysinternals.

El procedimiento es relativamente sencillo, debemos poner a ejecutar Process Monitor para que inicie el log del sistema, posteriormente abrir el editor de políticas, ir directamente a la política y activarla, después de esto volvemos a Process Monitor, detenemos el log con CTRL + E o bien en File, Capture Events.

Ya en Process Monitor, la primera distancia puede ser algo confusa (Tanto aquí como haciendo Troubleshooting por ejemplo), la recomendación que di en mi anterior artículo y que vuelvo a dar aquí es simpre iniciar la búsqueda por palabras claves que tengan que ver el problema o lo que se esté buscando, si no dan resultado, variar con palabras alternativas o en últimas empezar a analizar línea por línea descartando las que no corresponden.

Para mi caso, empecé por la que más creí se asemejaba, la palabra: Desktop

*Nota: En lo posible, hacer la búsqueda con las palabras en inglés.

Para hacer la búsqueda en Process Monitor, basta con presionar las teclas CTRL + F o bien en el menú Edit, Find y poner la palabra:

image

A pesar de que me costó un poco en este caso, identifiqué tal vez lo que estaba buscando, primero por el proceso asociado (MMC.exe) y segundo por la operación y ruta que implicaba:

P3

Como ven, se está abriendo y haciendo consulta sobre la clave:
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionGroupPolicyObjects

Esta clave sólo se ve afectada (Creada y editada) cuando se establece una política de grupo, desde Process Monitor se puede hacer clic derecho y seleccionar Jump To para ir directamente a la ubicación en el Registro, así se puede ver lo que establece específicamente:

image

Dentro de la clave en cuestión, se hace referencia a otra subclave ubicada por usuario en el Registro: UserSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer

En el lado derecho vemos que se creó un valor llamado NoDesktop con un valor “1” que se refiere a habilitado.

Ésta es la política, sin embargo desde aquí no se puede replicar porque siempre se crea un identificador (La serie de letras y números), pero podemos sacar ventaja de la segunda parte de la ruta especificada en la clave (UserSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer) esto indica dónde escribirá finalmente la configuración y es la que se replica a los demás usuarios, para este caso sería en:

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer

image

El contenido del valor NoDesktop es el que activará o desactivará la política, si está en 1 permanecerá activa, sin está en 0 sin embargo, permanecerá desactivada (Igual que si se elimina).

Ahora, como está en HKEY_CURRENT_USER, la configuración sólo aplicará en el usuario que se importe el fichero de registro, el Editor de Políticas es el que se encarga de replicarlo cuando se crea por ahí, pero todavía hay otra ventaja que por lo general funciona:

Gran parte de los cambios sobre las claves y subclaves de usuario, Windows los puede reconocer si se hacen en las mismas claves a nivel de máquina, es decir desde HKEY_LOCAL_MACHINE, en este orden de ideas para mi caso probé haciendo estableciendo el valor de NoDesktop (1) en la clave:

HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer

*Nota: Noten que ya empieza en HKLM (HKEY_LOCAL_MACHINE).

image

Afortunádamente para mí, en este caso funcionó y ahora todos los usuarios se les desactivaban los elementos del escritorio, ¡Esto era lo que buscaba!

*Nota: Si desean de pronto aplicar esta misma política, les dejo la descarga del Archivo de Registro desde mi Skydrive:

Este sin embargo, es sólo el cambio en Windows pero debemos especificarlo es en la imagen Offline.

Cargando y modificando el Hive en la imagen sin conexión

Cabe destacar que si realizamos el cambio en el Hive de usuario (NTUSER.DAT), la política se aplicará para todos los que se creen desde el predeterminado, pero para este artículo lo aplicaré diréctamente en la rama de HKEY_LOCAL_MACHINE con el ánimo de que veamos que cualquiera puede sufrir el cambio.

El cambio está bajo Software, por lo que el Hive que se debe cargar es el de Software.dat ubicado en la carpeta Config de los archivos de instalación de Windows, en este artículo es el directorio: C:MountWindowsSystem32ConfigSoftware

En el equipo técnico, abrimos una consola de comandos con privilegios elevados (Clic derecho, Ejecutar como administrador) y debejos ejecutar:

Reg Load HKLMTemp <RutaHive>

Donde <RutaHive> es la ubicación del archivo Hive que deseamos cargar, para este caso por ejemplo sería C:MountWindowsSystem32ConfigSoftware

El comando para este artículo quedaría:

Reg Load HKLMTemp C:MountWindowsSystem32ConfigSoftware

image

*Nota:Temp” no es un nombre obligatorio, es sólo una variable para que se cree la clave en el Registro de Windows, por lo que se le puede poner el nombre que deseemos.

Abrimos el Registro de Windows haciendo clic en Inicio, tecleando Regedit, clic derecho y Ejecutar como administrador.

Debemos buscar la clave Temp debajo de HKEY_LOCAL_MACHINE (HKLM) y a partir de ahí buscar la ruta normal como mostré en el anterior punto al encontrar la clave de registro que se debe modificar:

P4

En vez de hacerlo manualmente, fácilmente podríamos exportar el cambio en el Reigstro normal de HKEY_LOCAL_MACHINE y modificarlo para especificar que agregue en la ruta la clave que contiene el Hive (Temp), por ejemplo, si el cambio es en:

HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer,

Se modificaría el registro para que quedara:

HKEY_CURRENT_USERTempSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer

*Nota: No especificaré aquí de nuevo el paso a paso para la creación del valor que establece la política porque varía en este punto varía dependiendo de lo que cada quién quiera modificar en el registro.

Al terminar esto, cerramos el Registro de Windows, volvemos a la Consola de comandos y descargamos el Hive ejecutando: Reg Unload HKLMTemp

image

*Nota: Si planeamos hacer más cambios en el Registro debemos dejarlo cargado, realizar los cambios y una vez terminado, descargamos el Hive.

Desmontando Imagen…

¡Todo está listo! Finalmente en este punto si no vamos a realizar más cambios ya a nivel de Servicing (Con Dism como agregar actualizaciones), es tiempo de desmontar la imagen guardando los cambios para que todo lo que hicimos en el Hive y en general cualquier operación se mantenga para la instalación.

Para desmontar la imagen, hacemos clic en Inicio, digitamos CMD, clic derecho, Ejecutar como administrador.

En la Consola de comandos debemos ejecutar:

Dism /Unmount-Wim /MountDir:<DirectorioMount> /Commit

Donde <DirectorioMount> es como se llama donde montamos la imagen, para este artículo por ejemplo, es “Mount” y está ubicado en C:.

En mi caso el comando quedaría:

Dism /Unmount-Wim /MountDir:C:Mount /Commit

image

*Nota: La bandera /Commit es para que se guarden los cambios, en caso de que nos hayamos equivocado y queramos desmontar la imagen sin guardar los cambios se debe cambiar a /Discard

Preparando y probando…

Sólo queda crear la imagen .ISO si se quiere desplegar desde un Medio o bien proceder a montar el Install.wim en algun servidor WDS, MDT o cualquier otra tecnología de despliegue.

Al instalar Windows, sin tocar nada más, el cambio en el Registro estará embebido, para mi caso que integré el NoDesktop en HKEY_LOCAL_MACHINE para que ningun usuario pudiera cambiar o ver elementos en el escritorio, este fue el resultado:

P

*Nota: Nuevamente, recordemos que se puede hacer cualquier cambio en el Registro pero deben tener cuidado porque aquí estamos obligando a que las plantillas o Hives predeterminadas que son las más limpias estén viniendo ya con cambios.

¡Terminamos! Espero les pueda ser de utilidad y como siempre, ¡Comentarios bienvenidos!

Saludos,

Checho

3 comentarios en “Sysinternals y Windows Deployment mejor juntos: Establecer políticas y cambios en el registro a una imagen offline de Windows 7”

  1. Con esta tecnica se puede cambiar las plantillas o Hives del menu contextual al darle click derecho al raton sobre el escritorio y personalizar donde pone

    Resolucion de pantalla, Gadget y Personalizar ?

  2. Hola,
    No todo se puede modificar por el Registro, pero si por ejemplo sabes la ubicación de los textos que se puedan modificar en el menú contextual sólo tendrías que buscar la clave implicada cuando cargues el Hive en el Registro.

    Saludos,

Deja un comentario

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