15 octubre, 2012

Renombrar o borrar perfiles locales de usuarios de dominio en Windows 7

Empezamos por decir a groso modo que; cuentas de usuario y perfiles de usuario NO es lo mismo, ya que la cuenta vamos a decir y/o entender de algún modo que son las credenciales del usuario y el perfil el contenido en un equipo de este.
En este caso me centro en los perfiles locales creados por el inicio de sesión de usuarios de Active Directory con cuentas de usuario de dominio.


Perfiles dañados:


En algunos casos ocurre que los perfiles locales de alguna cuenta de usuario de dominio o locales pueden estar afectando al mal funcionamiento de este; ya sea por alguna aplicación, por corromperse los ficheros de referencia en el registro de este usuario (los ficheros NTUSER, que hacen referencia a los parámetros o preferencias del usuario en el sistema) o simplemente por fallos que solo ocurren con dicho usuario en un equipo concreto.
Un fallo muy habitual en usuarios de dominio por lo que tengo comprobado es encontrarnos con el siguiente aviso cuando iniciamos sesión de usuario: "Error en el inicio de sesión del servicio de perfil de usuario".

Cuando estos perfiles se corrompen, pueden hacerlo sin más y quedar tal cual están o puede darse el caso en el que cada vez que iniciemos sesión con el perfil de usuario dañado este no cargue bien el perfil y se inicie de "modo temporal", esto lo que hará es que si el perfil original se llama "Pepe", no iniciará como Pepe, si no que lo hará a través de un "Temp" la cual es una carpeta creada en la que podremos verla en 'Documents and Senttings' (WinXP) o 'Usuarios' (WinVista/7).
Esta carpeta representa la instancia actual de sesión iniciada del perfil que se quiso iniciar pero por causa de estar dañado generó un perfil temporal. Este perfil NO almacena ninguna información ni de configuración ni de datos relacionada con el perfil original afectado. Por lo que, de entrada nos sorprenderemos si pensábamos que habíamos perdido los datos de nuestro sistema!, pero no es así.

Independientemente de si se genera una carpeta temporal 'Temp' o no. Puede darse también el caso, de que se genere una carpeta del estilo: NombreUsuario.NombreEquipo. Suponiendo que mi equipo se llama "PC-Portatil" y cogiendo el ejemplo anterior, mi usuario es "Pepe", quedaría algo tal que así: Pepe.PC-Portatil, esto es muy típico verlo en entornos de equipos unidos a un dominio, equipos corporativos. Ya que al fallar la autentificación o simplemente que no carguen de manera adecuada ciertos servicios de red-dominio en el usuario de dominio a conectarse, Windows genera un perfil con el nombre de ese usuario de forma local. O si no, formamos parte de un equipo de dominio y nos ocurre esto, es por que al igual que el anterior caso del perfil temporal, este lo genera de este modo.


Renombrar o borrar perfiles dañados o corruptos:


En Windows XP esto era una tarea fácil, ya que solo bastaba con renombrar el perfil del usuario. Por ejemplo, si el usuario es "PEPE" podrías renombrar con "_PEPE" y listo. Al iniciar sesión de nuevo con este usuario se generaría un nuevo perfil "PEPE" cogido de la referencia del perfil "Default User".

Pues en Windows 7 esto no funciona de igual modo, en este caso a parte de hacer lo anterior (renombrar manualmente el perfil) también necesitamos modificar el registro de Windows, eliminando ciertas subclaves que hacen referencia al perfil local de usuario en el sistema. Esto es si lo queremos hacer de forma manual.

Aunque existe una tool recomendada por Microsoft para realizar borrados de perfiles la cual se interactúa mediante consola de comandos llamada Delprof, el cual podemos consultar sus parámetros y modo de empleo en la ayuda del comando (delprof /?) o en la propia descarga se nos adjunta un fichero mht de ayuda.

Pero lo que miraremos es como hacerlo de forma manual:

Para ello nos iríamos a la path que contiene la lista de perfiles actuales en el sistema:
HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList
Esta clave contiene diferentes subclaves por cada perfil de usuario, donde su nombre apunta a un SID (Security IDentifier) de la cuenta.
El valor de ProfileImagePath es la ruta de NTUSER.DAT para ese perfil de usuario. ProfileList no contiene un valor a la sección SID_Classes, sin embargo HKLM\SYSTEM\CurentControlSet\Control\hivelist contiene un valor por cada sección en HKLM y HKU que el sistema está actualmente utilizando. La diferencia entre los valores ProfileList y HiveList son en que:
- ProfileList: Contiene una lista de todos los perfiles de usuario de los que Windows tiene constancia de su existencia.
- HiveList: Contiene una lista de todas las secciones actualmente cargadas.

Lo que tendremos que hacer después de renombrar o eliminar la carpeta del perfil de usuario es eliminar la subclave entera del registro que apunta a dicho perfil. De modo que al iniciar sesión de nuevo en el equipo este vuelva a cargar las configuraciones del usuario y cree valores por defecto del perfil de referencia "Default User" y genere un nuevo SID para este usuario y que así vuelva apuntar a este de forma correcta.

También podremos eliminar el perfil a través de la opción "correcta" que nos ofrece Windows en: "Ejecutar -> sysdm.cpl" (Equipo -> Propiedades -> Configuración avanzada del sistema) -> Opciones avanzadas -> Perfiles de usuario -> Configuración -> Seleccionamos el perfil afectado -> Eliminar.

En el caso de NO ver claramente el nombre del perfil afectado, nos podremos encontrar algo como "Cuenta desconocida", esto ocurre por lo hablado anteriormente donde comentaba los "Perfiles dañados".

Si solo nos aparece una de estas cuentas la eliminamos sin piedad, si vemos más cuentas de este estilo, podemos eliminarlas igualmente ya que deben ser cuentas dañadas en un pasado, o si queremos dejarlas "por si a caso" y solo borrar el perfil dañado actual, podemos fijarnos en la "fecha de modificación" o el "tamaño del perfil" como referencia.

Antes mencionaba que esta sería la opción correcta de borrar un perfil. Por qué?.
Porqué Windows lo que hace es eliminar la carpeta de perfil y el SID del registro en un mismo paso, EXCEPTO el nombre de cuenta de usuario lo podemos ver en: (Ejecutar -> lusrmgr.msc).

Personalmente si todo está bien, los borro de este último modo, pero si los perfiles están corruptos prefiero hacerlo todo de manera manual.

Si la carpeta del perfil ya está borrada y simplemente se nos crea un TEMP cuando iniciamos con el usuario afectado, entrando en el registro de Windows vemos que aparece un SID con la terminación .bak lo que haremos será renombrar ese SID, QUITANDO esa extensión .bak. Quedando solo la clave con el identificador a mostrar.
Nos fijaremos al entrar en cada clave el valor del "ProfileImagePath", este nos mostrará el usuario relacionado con ese SID.

Figura 1: Eliminando SID de usuario con problemas del registro de Windows 7.

Ahora bien, si SOLO vemos una carpeta con el SID de usuario y SOLO ese SID tiene un .bak al final y no hay ningún otro TEMP, ni ningún SID del mismo usuario duplicado, simplemente nos bastaría con poner a 0 los contadores. Estos contadores son valores del registro de esa clave en en ese SID en cuestión.
Podríamos a "0" los valores: RefCount y State.

Más info. de este último caso: http://support.microsoft.com/kb/947215/es

Con esto solucionaremos la mayoría de problemas de este tipo y estaremos renombrando perfiles locales de usuarios de cuentas de dominio de la manera que yo conozco más adecuada y fiable.

Añado otra forma de BORRAR perfiles de usuario de DOMINIO de forma más gráfica.

Esto SOLO BORRAR (no renombrar), según "lo aconseja Microsfot" y también igualmente válida y "limpia", es directamente borrar o eliminar un perfil de usuario tanto la carpeta de perfil como la clave de registro SID en ProfileList que apunta a el, esto se puede hacer directamente desde las propiedades de sistema (sysdm.cpl), en la pestaña de Opciones avanzadas > Configuración... 

Figura 2: Configuración para perfiles de usuario en: Opciones avanzadas de propiedades del sistema.

Una vez situados aquí, podremos seleccionar el perfil afectado y directamente eliminarlo. Esto hará que se borre completamente la carpeta de usuario creada en el sistema así como la clave de registro SID que apunta a el.
Aclaro que, lo que si NO BORRARÁ será la cuenta LOCAL (en el caso de que sea local y no de dominio) de usuario creada (podemos verla en lusrmgr.msc) y digo cuenta de usuario, no perfil de usuario.
Lo cual esto dependerá de si lo queremos borrar definitivamente tendríamos que borrar también la cuenta a parte, o si solo queremos eliminar el perfil y volver iniciar sesión con dicho usuario local creado, de forma que se solucione algún problema en concreto.

Figura 3: Eliminación de la carpeta local del perfil + SID de ProfileList del registro de Windows.

Por último decir que esta última opción en ocasiones (en un pequeño porcentaje), no funciona correctamente ya que nos puede saltar algún tipo de error en la eliminación de perfil, en ese caso lo haremos de forma manual como expliqué más arriba de este artículo.

Espero que tanto la solución manual como esta última, la más gráfica, las dos propuestas por Microsoft, sea de utilidad a muchos para realizar esta tarea.

Saludos!
Entradas Relacionadas