Problema

En entornos Windows Server es frecuente que, tras una migración o cambio de rol, los usuarios terminen cargando un perfil “bloqueado” con permisos limitados. El síntoma típico es que, sin importar a qué grupo pertenezca (administradores locales, dominio, etc.), el inicio de sesión siempre redirige a la misma carpeta de perfil y se aplican restricciones que no aparecen en la consola de Group Policy (gpedit.msc) ni en los GPO de dominio. La causa suele ser una política local que se quedó “pegada” en el sistema y que sobrescribe cualquier configuración externa.

Este comportamiento impide la gestión normal de cuentas, obliga a usar una cuenta de administrador local y complica la auditoría de permisos. La solución debe ser capaz de eliminar cualquier rastro de políticas locales corruptas o no deseadas y volver a generar una configuración limpia que respete los GPO de dominio.

Causa

1. Políticas locales persistentes

Windows guarda la configuración de Local Group Policy en dos carpetas:

  • %windir%\System32\GroupPolicy
  • %windir%\System32\GroupPolicyUsers

Si alguna de estas estructuras se corrompe o contiene un archivo Registry.pol que define un filtro de perfil, el motor de políticas locales aplicará esas reglas antes de procesar los GPO de dominio.

2. Copias de seguridad automáticas

Al ejecutar secedit /export o al usar herramientas como LGPO.exe, se pueden crear copias de seguridad que el sistema restaura automáticamente al detectar cambios en los archivos de política. Estas copias pueden volver a aplicar la configuración indeseada después de un reinicio.

3. Configuración de “User Rights Assignment” y “Security Options”

Algunas directivas de seguridad, como Deny log on locally o Deny log on through Remote Desktop Services, pueden estar definidas en la política local y afectar a todos los usuarios, incluidos los administradores.

4. Redirección de perfiles mediante “Profile List” en el registro

Una clave bajo HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList puede contener un SID que apunta a un perfil predefinido. Si la política local escribe esa clave, el motor de perfiles ignora la ruta del perfil del dominio.

Solución

El objetivo es eliminar de forma segura la configuración local y forzar una reconstrucción limpia. El proceso se divide en tres fases: copia de seguridad, borrado de la política local y reaplicación de los GPO de dominio.

1. Copia de seguridad de la configuración actual

Antes de tocar cualquier archivo, exporta la política local y el registro de perfiles. Esto permite volver atrás si algo sale mal.

# Exportar la política local a un archivo .inf
secedit /export /cfg C:\backup\localpolicy.inf

# Exportar la rama de registro de perfiles
reg export "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" C:\backup\ProfileList.reg /y

2. Eliminar la política local

Borrar las carpetas de GroupPolicy y forzar la regeneración de los archivos Registry.pol.

# Detener el servicio de políticas de grupo (opcional pero recomendado)
net stop gpsvc

# Eliminar los directorios de política local
rd /s /q "%windir%\System32\GroupPolicy"
rd /s /q "%windir%\System32\GroupPolicyUsers"

# Restablecer la base de datos de seguridad a los valores por defecto
secedit /configure /db %windir%\security\database\secedit.sdb /cfg %windir%\inf\defltbase.inf /areas SECURITYPOLICY

# Reiniciar el servicio de políticas de grupo
net start gpsvc

3. Forzar una actualización de políticas

Con la política local borrada, el motor de políticas volverá a leer los GPO de dominio. Ejecuta gpupdate y verifica que no haya errores.

gpupdate /force

4. Limpiar posibles referencias de perfil en el registro

Si el problema incluía redirección de perfiles, elimina los SID que apunten a la carpeta bloqueada.

# Listar los SID que contienen la ruta problemática (reemplaza "LockedProfile" por la carpeta real)
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /s /v ProfileImagePath | findstr /i "LockedProfile"

# Eliminar la clave del SID (reemplaza <SID> por el valor encontrado)
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<SID>" /f

5. Reconstruir los perfiles de usuario

Una vez eliminada la referencia, el próximo inicio de sesión creará un nuevo perfil basado en la plantilla por defecto (Default).

Cuándo aplicar esta solución

  • Síntomas: todos los usuarios, incluidos administradores, reciben el mismo perfil restringido; los cambios en grupos locales no surten efecto; gpresult /R muestra “No Policy Objects” o solo políticas locales.
  • Entornos: servidores que ya no forman parte de un dominio de acceso remoto, servidores de archivos e impresión heredados, o máquinas que fueron reutilizadas después de una migración.
  • No aplicar: si la política deseada está definida intencionalmente en la política local (por ejemplo, configuraciones de seguridad específicas de la máquina). En esos casos, exporta la política antes de borrarla y re‑importa solo los valores necesarios.

Código

# 1. Copia de seguridad
secedit /export /cfg C:\backup\localpolicy.inf
reg export "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" C:\backup\ProfileList.reg /y

# 2. Borrar política local
net stop gpsvc
rd /s /q "%windir%\System32\GroupPolicy"
rd /s /q "%windir%\System32\GroupPolicyUsers"
secedit /configure /db %windir%\security\database\secedit.sdb /cfg %windir%\inf\defltbase.inf /areas SECURITYPOLICY
net start gpsvc

# 3. Actualizar GPO
gpupdate /force

# 4. Limpiar referencias de perfil (opcional)
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /s /v ProfileImagePath | findstr /i "LockedProfile"
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<SID>" /f

Verificación

  1. Comprobar que la política local está vacía

    gpresult /R | findstr /i "Local Group Policy"
    

    La salida no debe listar archivos Registry.pol.

  2. Validar la pertenencia a grupos
    Ejecuta whoami /groups con una cuenta de dominio que sea administrador. Debe aparecer el grupo “Domain Admins” y no “Users” como único grupo.

  3. Revisar la ruta del perfil
    Inicia sesión con una cuenta de dominio y verifica que %USERPROFILE% apunte a C:\Users\<username> y que la carpeta contenga los subdirectorios habituales (Desktop, Documents, etc.).

  4. Revisar eventos
    En el Visor de eventos, bajo SystemGroupPolicy, busca entradas sin errores después de gpupdate.

Notas adicionales

  • Herramientas de terceros: LGPO.exe es útil para exportar e importar políticas en formato .pol, pero en la mayoría de los casos el método nativo de secedit es suficiente y menos propenso a conflictos de versiones.
  • Política de auditoría: después de restablecer, habilita la auditoría de cambios en Local Security Policy → Audit Policy para detectar futuros intentos de modificar la política local sin autorización.
  • Backup regular: programa una tarea semanal que exporte la política local y la rama de registro de perfiles. Así tendrás un punto de restauración rápido ante incidentes similares.
  • Entorno de pruebas: siempre prueba el procedimiento en una máquina de laboratorio antes de aplicarlo en producción, especialmente si el servidor ejecuta servicios críticos que dependen de perfiles específicos.