Alguna vez nos habremos (o no) preguntado como hace nuestro sistema para actualizar las directivas de nuestras maquinas y aplicar los cambios. Lejos de comparar claves con claves para detectar cambios en las mismas, Microsoft utiliza un sistema de versionado para detectar cambios en las directivas de nuestro entorno.
Verificar versión:
Podemos verificar la versión de las directivas desde :
HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy\History\
En este punto disponemos de una serie de claves {XXX}, cada una de ellas corresponde a una extensión documentada en:
http://bit.ly/14GoMce
Por ejemplo, la extensión {25537BA6-77A8-11D2-9B6C-0000F8080861} corresponde a directivas de FolderRedirection. Dentro observaremos las directivas aplicadas que contienen configuraciones de FolderRedirection.
En la clave GPONAME podremos observar el ID de la directiva en cuestión, la cual corresponde con el ID del Sysvol (podemos ver este ID, en la consola de gestión de directivas – gpmc.msc , campo DETALLES de la directiva en cuestión).
En esta, observamos también la VERSION de la directiva; el valor que actualmente nos interesa.
Versión: 3080239
Entendiendo la versión
Veamos de donde sale este número. Una directiva de grupo dispone de dos partes, directiva de maquina y directiva de usuario. Con el fin de verificar y rastrear cambios en la configuración, la GPO rastrea el número de versión en busca de cambios.
Este número se divide en dos partes, una primera para la configuración de maquina y una segunda para configuración de usuario, divididos en forma de 16bits.
En el caso ejemplo, disponemos del siguiente número:
3080239 teniendo en cuenta que la composición de una versión se compone de: [User versión 16Bits][Computer Versin 16Bits]
Realizamos conversión a hexadecimal, para ello podemos utilizar la propia calculadora de Windows la cual nos facilitará la tarea: 2F002F
Realizamos la separación del hexadecimal en dos bloques de 16 bits, el cual nos da el siguiente resultado:
0x00010021 : [002F] User Version [002F] Computer versión
Así disponemos de una versión 47 para la gpo de usuario y una 47 para la gpo de máquina.
Cualquier modificación en la directiva, modificara la versión para la GPO y en el proceso de verificación de directivas se compara la versión. En caso de que la versión no coincida, se reaplicarán cambios de la directiva, en caso que la versión sea igual, se informa que no existen cambios y la directiva no será re-aplicada.
La versión de la directiva, es posible visualizar-la desde la pestaña de DETALLES en la consola de administración de directivas de grupo (gpmc.msc)
Si navegáis un poco por esta sección del registro observareis mas detalles interesantes. Os dejo literatura al respecto para aquellos que queráis profundizar mas.
Habilitar GPSvcDebugLevel para Troubleshooting de GPOs (2008)
Para habilitar el debug en 2008, realizaremos lo siguiente:
Troubleshooting e información ampliada en el procesamiento de directivas
– Abrir regedit
– Situarnos en HKLM\Software\Microsoft\Windows NT\CurrentVersion
– Crear una nueva clave llamada “Diagnostics”
– Generar un DWORD con nombre “GPSvcDebugLevel” e incluir el valor hexadecimal 0x30002
– Crear el directorio %systemroot%\Debug\Usermode
– Realizar un gpupdate /force
A partir de este momento, los logons de usuario generarán un fichero gpsvc.log en la ruta creada, dónde podremos verificar que esta ocurriendo durante la aplicación de directivas.
Troubleshooting y errores durante en el uso directivas.
– Abrir regedit
– Situarnos en HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions\{827D319E-6EAC-11D2-A4EA-00C04F79F83A}
– Generar un DWORD con nombre “ExtensionDebugLevel” e incluir el valor decimal 2.
– Reiniciar la maquina.
El fichero winlogon.log es creado en %systermroot% \Security\Logs para su revisión.
Recursos adicionales:
Computer Policy for Client-side Extensions: http://technet.microsoft.com/en-us/library/cc978265.aspx
Client-side Extension Preferences: http://technet.microsoft.com/en-us/library/cc978250.aspx
Group Policy Client Side Extension List: http://blogs.technet.com/b/mempson/archive/2010/12/01/group-policy-client-side-extension-list.aspx
Understanding the domain-based GPO version number: http://blogs.technet.com/b/grouppolicy/archive/2008/01/08/understanding-the-domain-based-gpo-version-number-scripts-included.aspx
Best Practices: http://technet.microsoft.com/en-us/library/cc961688.aspx
The Basics of Group Policies: http://blogs.technet.com/b/askperf/archive/2007/06/05/the-basics-of-group-policies.aspx
Group Policy Site: http://technet.microsoft.com/en-us/windowsserver/bb310732.aspx
Using Log files for Troubleshooting GPOs: http://technet.microsoft.com/en-us/library/cc775423%28v=WS.10%29.aspx
How Administrative Templates Extension Works: http://technet.microsoft.com/en-us/library/cc758189%28v=WS.10%29.aspx