Welcome to Kartones.Net Sign in

Stats



May 2008 - Posts

Caso: Modificación del texto en el icono de "Mi PC"

Prólogo

Este caso es un claro ejemplo sobre lo conveniente que es una buena comunicación a la hora de resolver una incidencia. Una buena pregunta ayuda siempre a una buena respuesta.

Síntoma

Un administrador encargado de gestionar las políticas de grupo de la organización informa que, tras aplicar una gpo que modifica el texto del icono de "Mi PC" por el nombre del equipo, los usuarios son capaces de volver a cambiarlo. Llega a la conclusión de que la política sólo se aplica la primera vez. Esta incidencia ha sido comunicada a través de un correo donde se introduce el problema en un simple par de líneas y se adjunta la siguiente captura de pantalla:

Politica

El administrador solicita que o bien se deshabilite la modificación del texto al usuario o bien se asegure que la política se aplique de nuevo y sobreescriba los cambios.

Investigación

Es muy poco frecuente que, salvo en estaciones de trabajo, las organizaciones y sobre todo las grandes empresas decidan utilizar versiones de sistemas operativos de servidor traducidas a su idioma local. Este caso es una excepción a la regla ya que no sólo los servidores de dominio sino todos los servidores de su infraestructura están castellano, tanto los sistemas operativos como los sistemas de gestión de bases de datos y correo. Se podría hablar largo y tendido sobre el tema, pero, desde el punto de vista de soporte, donde la amplia mayoría de fuentes de información están en inglés, es más que conveniente mantener el software de infraestructura de servidores en su idioma original.

Por otro lado estamos hablando de políticas de grupo. A través de estas políticas se puede modificar casi cualquier parámetro no sólo de los sistemas operativos de Microsoft, sino también de otros productos como Office, Internet Explorer, o incluso Firefox. De hecho la tecnología permite desarrollar nuevas políticas a medida a través de plantillas. Como dato adicional indicar que existen más de 1500 configuraciones "de fabrica" para Windows 2000, 2003 y XP modificables a través políticas de grupo.

Como paso preliminar en este caso resulta conveniente investigar sobre la opción de cambiar el texto del icono de "Mi PC": cómo se denomina en inglés, en qué sección se configura, qué es lo que modifica realmente a nivel de registro o si aplica a la configuración del equipo o a la del usuario. Por las razones que se han expuesto más arriba, puede ser realmente difícil localizar información una política de grupo, máxime cuando sólo contamos con su nombre traducido. Afortunadamente, para facilitar su consulta, Microsoft ha publicado un listado en Excel con todas las opciones de configuración de políticas de grupo disponibles para sus sistemas operativos. El listado se puede descargar desde este enlace.

Tras una buscar (sin éxito alguno) la configuración en la hoja, averiguar la traducción al inglés de "Cambiar la el texto del icono Mi PC", usar una maqueta de pruebas y dar una vuelta por las KBs de Microsoft y Google surge la idea: ¿No será una política diseñada a medida?

Ahora, revisando la captura de pantalla adjunta en el escueto correo de la incidencia, empieza a tener sentido la palabra "Personalizadas" que aparece en el encabezado del texto de la imagen.

Entre el enfado y la vergüenza se solicita al cliente que confirme si se trata de una plantilla a medida y, de ser efectivamente así, que por favor remita el código fuente de la plantilla para revisarlo. No sin alguna "labor burocrática adicional" se consigue confirmar la sospecha y se obtiene el código de la plantilla personalizada:

1 CLASS USER 2 3 CATEGORY !!Personalizadas 4 5 POLICY !!Nombre_Host 6 7 KEYNAME "SOFTWARE\Policies\Classes" 8 EXPLAIN !!Explicacion_Mipc 9 10 PART "Cambiar el texto del icono Mi PC a..." COMBOBOX NOSORT EXPANDABLETEXT 11 KEYNAME "SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}" 12 VALUENAME "LocalizedString" 13 14 SUGGESTIONS 15 "%computername%" 16 "%username%" 17 "@%SystemRoot%\system32\SHELL32.dll,-9216" 18 END SUGGESTIONS 19 20 END PART 21 END POLICY 22 23 END CATEGORY 24 25 [strings] 26 Explicacion_Mipc="Permite Que el nombre del Icono que Habitualmente llamamos Mi Pc."

En este punto, sin entrar en demasiado detalle, hay que explicar que, por un lado, cuando se aplican políticas personalizadas , lo que hacen en realidad es modificar una sección del registro del sistema operativo y que, por otro lado, pueden ser diseñadas para que afecten a usuarios del dominio (independientemente del equipo donde se conecten) o a equipos del mismo (independientemente del usuario que se conecte).

Partiendo de esta aclaración y revisando el código de la plantilla, este aporta dos pistas importantes:

  1. En la línea 1 se declara con el texto "CLASS USER" que es una plantilla diseñada para modificar la configuración del nodo de usuario.
  2. En la línea 11 se indica que la clave del registro que modifica es "SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}" y, dado que es una configuración de usuario, esta clave cuelga del raíz HKEY_CURRENT_USER.

Nota: Si por el contrario se tratara de una configuración de ordenador, CLASS COMPUTER, la clave se del registro colgaría del raíz HKEY_LOCAL_MACHINE.

Ya con esta nueva información, el siguiente paso es descubrir por qué cuando el usuario cambia a mano el texto "no se vuelve a aplicar la política". Pongo esto último entre comillas porque Windows, en el caso de las políticas personalizadas, no "fuerza" su aplicación.

El funcionamiento de las políticas en la plataforma Windows es un tema algo complejo y a veces confuso: hay que tener en cuenta que este sistema está pensado para dominios formados por volumen considerable de equipos y que, dependiendo del uso que se dé, puede consumir una cantidad de recursos importantes durante los procesos de inicio de sesión. Para evitar problemas de ancho de banda o retrasos en el arranque de los equipos, el "motor" encargado de gestionar las políticas las divide en diferentes grupos de configuraciones y controla su ejecución durante el inicio de sesión, el refresco de políticas automático o la ejecución del comando de refresco manual gpupdate. Uno de esos grupos en los que se divide la ejecución es precisamente el de políticas personalizadas y su configuración por defecto es que sólo se aplican cuando la política es nueva o cuando esta ha sido modificada.

Por lo tanto, atendiendo a lo que el administrador nos solicita en este caso, para que se vuelva a cambiar el texto del icono de Mi PC en los equipos existirían estas tres opciones:

  • Esperar a que se modifique la gpo y por lo tanto el motor aplique de nuevo las políticas personalizadas.
  • Ejecutar en los equipos que se desea actualizar el comando "gpupdate /force" el cual obliga a refrescar por completo la política.
  • Modificar la configuración por defecto de los clientes para que el motor encargado de la aplicación de gpos personalizadas se ejecute siempre.

Por el número de equipos afectados, ninguna de las posibilidades arriba mencionadas sería efectiva ya que modificar las políticas constantemente o forzar su ejecución afectaría negativamente a los recursos de red del dominio y al tiempo de inicio de sesión de las máquinas.

La opción lógica por lo tanto es impedir que el usuario modifique el texto del icono desde la interfaz. Para ello se necesita denegar el permiso de escritura a la clave del registro que referencia la política personalizada.

Tras realizar una prueba en maqueta, se comprueba que el usuario puede seguir cambiando el texto del cono de Mi PC pese a que se han denegado permisos en el registro. Esto complica un poco más el caso, pero gracias a la herramienta que monitoriza los accesos al registro (entre otros recursos) Procmon se descubre que, cuando se hace desde la interfaz gráfica, la clave que se modifica en realidad es otra:

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}

Seguramente exista algún artículo que explique este comportamiento más en detalle pero, en lo que respecta a este caso, sólo nos interesa saber que, pese a que las dos claves del registro contienen el texto del icono de Mi PC, la que cuelga de SOFTWARE\Classes\CLSID tiene "menos prioridad" que la que cuelga de Software\Microsoft\Windows\CurrentVersion\Explorer. Esta última es la que se modifica desde la interfaz de usuario y si no está vacía, su valor es el que se muestra siempre en la pantalla.

Solución

Primero es necesario modificar la política personalizada de tal forma que se esta enlace a la clave del registro que se modifica desde la interfaz de usuario:

1 CLASS USER 2 3 CATEGORY !!Personalizadas 4 5 POLICY !!Nombre_Host 6 7 KEYNAME "SOFTWARE\Policies\Classes" 8 EXPLAIN !!Explicacion_Mipc 9 10 PART "Cambiar el texto del icono Mi PC a..." COMBOBOX NOSORT EXPANDABLETEXT 11 KEYNAME "Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}" 12 VALUENAME "LocalizedString" 13 14 SUGGESTIONS 15 "%computername%" 16 "%username%" 17 "@%SystemRoot%\system32\SHELL32.dll,-9216" 18 END SUGGESTIONS 19 20 END PART 21 END POLICY 22 23 END CATEGORY 24 25 [strings] 26 Explicacion_Mipc="Permite Que el nombre del Icono que Habitualmente llamamos Mi Pc."

Después se procede a modificar el permiso de la citada clave. Al tratarse de la sección del registro HKCU este cambio de seguridad no puede realizarse a través de políticas de grupo, por lo que habrá que utilizar una herramienta o un script que sí lo permita, como por ejemplo subinacl. Subinacl está incluido en el Kit de Recursos de Windows y se puede llamar desde un script de inicio de sesión o también se puede distribuir un archivo de proceso por lotes que llame al ejecutable a través de políticas de grupo o mediante Microsoft Operations Manager. El comando completo para este caso es el siguiente:

subinacl.exe /subkeyreg HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D} /deny=S-1-5-4=S
El primer parámetro indica que se va a modificar una clave del registro, después se pasa la dirección y por último se da al orden de denegar el permiso de establecer valor (la opción S) al grupo S-1-5-4, el SID de Windows para INTERACTIVE USER.

Conclusiones

Fuera de lo complicado o no que sea una incidencia, es importante que esta sea comunicada con el mayor número de detalles que ayuden a su resolución siempre, dentro de la medida de lo posible, claro.

Con la experiencia y el conocimiento se puede llegar a detectar a priori la falta de información adicional para la resolución de una incidencia. Una buena práctica es estar atento a los datos más comunes que normalmente se necesitan para resolver los distintos tipos de casos con los que solemos trabajar; esto puede ayudarnos a tener una serie de criterios previos o incluso crear platillas de información preliminar.

Posted: May 26 2008, 09:48 AM by TheSpike | with 1 comment(s)
Filed under: , ,