¿Desapareció GptTmpl.inf en la Default Domain Controllers Policy (DDCP) y la consola de seguridad no abre o los DCs dejaron de recibir derechos de usuario? Aquí tienes una guía práctica, segura y detallada para reconstruir ese archivo y devolver la política a un estado correcto.
Qué es GptTmpl.inf y por qué importa en los DCs
GptTmpl.inf
es el archivo de plantilla de seguridad que vive dentro de un GPO y materializa la sección Security Settings (derechos de usuario, opciones de seguridad, auditoría, etc.). En el caso de la Default Domain Controllers Policy (DDCP), este INF define ajustes críticos para la seguridad de los controladores de dominio: quién puede iniciar sesión localmente o por RDP en los DCs, quién puede administrar el controlador, parámetros de firma/selado, integridad LDAP, entre otros.
Sin este archivo, el editor de políticas suele mostrar un nodo de Seguridad vacío o con errores, la aplicación de directiva de seguridad se interrumpe y aparecen inconsistencias entre DCs. Además, recrearlo “a mano” es delicado porque la DDCP contiene SIDs específicos del dominio (por ejemplo, Domain Admins, Domain Controllers), que deben corresponder a tu Domain SID real.
Señales típicas de que falta o está dañado
- En GPMC, al abrir Security Settings de la DDCP, el panel queda vacío o muestra error.
- Los DCs dejan de aplicar ciertos User Rights Assignment (p. ej. grupos con privilegios inesperados o perdidos).
- Eventos de procesamiento de directiva que indican problemas leyendo templates de seguridad (Visor de eventos → Applications and Services Logs → Microsoft → Windows → GroupPolicy → Operational).
- Errores de acceso a
SYSVOL
o discrepancias entre DCs por replicación.
Ubicación y GUID de la DDCP
La DDCP siempre usa el GUID {6AC1786C-016F-11D2-945F-00C04FB984F9}
. La ruta del INF en SYSVOL es:
\<dominio>\SYSVOL<dominio>\Policies\{6AC1786C-016F-11D2-945F-00C04FB984F9}\MACHINE\Microsoft\Windows NT\SecEdit\GptTmpl.inf
(La Default Domain Policy —DDP— usa el GUID {31B2F340-016D-11D2-945F-00C04FB984F9}
).
Antes de tocar nada: comprobaciones y copias de seguridad
- Respaldar ambos GPO (si aún existen): en GPMC → Group Policy Objects → clic derecho → Back Up. También genera un Report en HTML/PDF para comparar después.
- Revisar salud de AD y SYSVOL:
dcdiag /e /v repadmin /replsummary
Si hay errores de replicación, corrígelos antes; de lo contrario, cualquier arreglo no se propagará bien entre DCs. - Confirma que tu bosque/dominio está en nivel funcional 2016 y los DCs son Windows Server 2019 (como indica el caso), para alinear expectativas con el comportamiento de DFSR.
Estrategias de recuperación (resumen)
Estas son las tres vías seguras para reconstruir GptTmpl.inf
de la DDCP. La primera es la más rápida y confiable.
Método | Cuándo usarlo | Ventajas | Riesgos/Impacto | Requisitos |
---|---|---|---|---|
dcgpofix (recomendada) | DDCP/DDP corruptas o sin INF; quieres volver a valores out‑of‑box. | Rápido, recrea SIDs correctos para tu dominio y regenera GptTmpl.inf . | Sobrescribe ajustes existentes de esos GPO. | Cuenta Enterprise/Domain Admin, SYSVOL/DFSR sano. |
Importar desde lab con mapeo de identidades | Necesitas una DDCP “limpia” adaptada a tu dominio, conservando estructura estándar. | Traduce SIDs automáticamente; controlas diferencias. | Requiere montar un entorno limpio y hacer backup con GPMC. | GPMC, backup de lab, acceso a producción para importar. |
INF mínimo + completar en el editor | Necesitas desbloquear el GPO ya y reconstruir poco a poco. | Rápido para “arrancar” el GPO. | Debes redefinir manualmente derechos y opciones; riesgo humano. | Acceso a SYSVOL y GPMC. |
Opción recomendada: restaurar los GPO predeterminados con dcgpofix
Objetivo: reconstruir la Default Domain Controllers Policy con valores por defecto del sistema, regenerando su GptTmpl.inf
con los SIDs correctos del dominio, y devolver a los DCs los derechos y opciones de seguridad estándar.
Pasos
- En un DC, abre CMD/PowerShell con permisos elevados y sesión de Enterprise Admin o Domain Admin.
- Ejecuta:
dcgpofix /target:dc
Si también está dañada la DDP:dcgpofix /target:both
- Al finalizar, el sistema regenera ambos GPO (según el objetivo), recrea las carpetas en
SYSVOL
y los objetos en CN=Policies,CN=System,DC=…, y vuelve a crearGptTmpl.inf
con tu Domain SID.
Después de ejecutar
- Forzar actualización de directivas:
gpupdate /force
- Verificar replicación y salud:
repadmin /replsummary dcdiag /e /v
- Comprobar resultados efectivos en un DC:
gpresult /H C:\Temp\GPResult-DC.html
Abre el reporte y confirma que la Default Domain Controllers Policy se aplica sin errores y que los derechos de usuario deseados están presentes.
Notas y advertencias
- dcgpofix sobrescribe los ajustes existentes de esos GPO. Si habías personalizado la DDCP/DDP, documenta y reintroduce los cambios después (usa tus Reports y Backups previos para comparar).
- Si “no hace nada”, suele tratarse de permisos insuficientes o de problemas en SYSVOL/DFSR. No continúes hasta corregirlos.
- Se confunde a veces con una herramienta llamada “dpogpfix”: el binario correcto es
dcgpofix.exe
.
Opción alternativa: importar la DDCP desde un entorno limpio y traducir identidades
Esta opción te permite traer una DDCP estándar desde un laboratorio y que GPMC haga el mapeo de SIDs al dominio de producción.
En el laboratorio
- Crea un bosque nuevo (mismo nivel funcional y versión de SO que producción).
- Espera a que se creen los GPO por defecto (DDP y DDCP).
- Desde GPMC, realiza Back Up de la Default Domain Controllers Policy.
En producción
- Abre GPMC → Group Policy Objects → selecciona Default Domain Controllers Policy → Import Settings → elige el backup del lab.
- En el asistente, usa el mapeo de usuarios y grupos para traducir identidades automáticamente. Así, los SIDs de dominio del lab se convierten a los de producción.
- Alternativa conservadora: importa a un GPO nuevo (por ejemplo, DC Security – Restaurado) y vincúlalo a la OU Domain Controllers por encima de otros GPO. Cuando verifiques que todo funciona, puedes consolidar.
Verificación
- Abre el nodo Security Settings y confirma que ahora aparece poblado.
- Ejecuta
gpupdate /force
en los DCs y valida con Group Policy Results ogpresult
.
Opción de contingencia: crear un INF mínimo y completar desde el editor
Si necesitas que el GPO deje de dar errores inmediatamente (por ejemplo, para poder abrir el editor y seguir trabajando), crea un INF mínimo seguro. Esto no “restaura todo”, pero establece claves críticas y permite que el editor vuelva a operar.
Ruta del archivo
\<dominio>\SYSVOL<dominio>\Policies\{6AC1786C-016F-11D2-945F-00C04FB984F9}\MACHINE\Microsoft\Windows NT\SecEdit\GptTmpl.inf
Contenido mínimo propuesto
[Unicode]
Unicode=yes
\[Version]
signature="\$CHICAGO\$"
Revision=1
\[Registry Values]
MACHINE\System\CurrentControlSet\Services\NTDS\Parameters\LDAPServerIntegrity=4,1
MACHINE\System\CurrentControlSet\Services\Netlogon\Parameters\RequireSignOrSeal=4,1
MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters\RequireSecuritySignature=4,1
MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters\EnableSecuritySignature=4,1 </code></pre>
<p>Consejos:</p>
<ul>
<li>Guarda el archivo como texto con sección <code>[Unicode]</code> (Windows acepta ANSI o UTF‑16 LE; la clave es la directiva <code>Unicode=yes</code>).</li>
<li>Abre el GPO en GPMC → <i>Security Settings</i> y redefine explícitamente los <b>derechos de usuario</b> y <b>opciones de seguridad</b> que faltan. Al guardar, el editor irá rellenando las secciones que no existían.</li>
<li>Evita inventar listas largas de <i>Privilege Rights</i> sin una referencia fiable: un error puede exponer los DCs (por ejemplo, permitir RDP a grupos no deseados).</li>
</ul>
<h2>Si copias un INF de otro dominio: cómo ajustar SIDs correctamente</h2>
<p>En un INF, verás SIDs de varios tipos. Algunos son <b>bien conocidos</b> y no cambian entre dominios (p. ej., <code>S-1-5-32-...</code> de los grupos <i>Builtin</i>, o <code>S-1-5-80-...</code> de cuentas de servicio). Otros son <b>del dominio</b> y deben reemplazarse por los tuyos: tienen la forma <code>S-1-5-21-<DomainSID>-<RID></code>.</p>
<h3>Obtén tu Domain SID y SIDs clave con PowerShell</h3>
<pre><code class="language-powershell">(Get-ADDomain).DomainSID.Value
(Get-ADGroup 'Domain Admins').SID.Value
(Get-ADGroup 'Domain Controllers').SID.Value
(Get-ADUser 'Administrator').SID.Value
</code></pre>
<h3>RIDs comunes (mantén el RID, cambia solo la base del DomainSID)</h3>
<table>
<thead>
<tr>
<th>Entidad</th>
<th>RID</th>
<th>Descripción</th>
</tr>
</thead>
<tbody>
<tr>
<td>Administrator (cuenta)</td>
<td>-500</td>
<td>Cuenta de administrador integrada del dominio.</td>
</tr>
<tr>
<td>Domain Admins</td>
<td>-512</td>
<td>Grupo de administradores del dominio.</td>
</tr>
<tr>
<td>Domain Users</td>
<td>-513</td>
<td>Grupo predeterminado de usuarios del dominio.</td>
</tr>
<tr>
<td>Domain Guests</td>
<td>-514</td>
<td>Grupo predeterminado de invitados del dominio.</td>
</tr>
<tr>
<td>Domain Computers</td>
<td>-515</td>
<td>Cuentas de equipo del dominio.</td>
</tr>
<tr>
<td>Domain Controllers</td>
<td>-516</td>
<td>Controladores de dominio.</td>
</tr>
<tr>
<td>Cert Publishers</td>
<td>-517</td>
<td>Publicadores de certificados.</td>
</tr>
<tr>
<td>Schema Admins</td>
<td>-518</td>
<td>Administradores del esquema del bosque.</td>
</tr>
<tr>
<td>Enterprise Admins</td>
<td>-519</td>
<td>Administradores de empresa del bosque.</td>
</tr>
<tr>
<td>Group Policy Creator Owners</td>
<td>-520</td>
<td>Creadores de directivas de grupo.</td>
</tr>
</tbody>
</table>
<p>Reglas prácticas cuando edites un INF copiado:</p>
<ul>
<li><b>No</b> toques SIDs bien conocidos (<code>S-1-5-32-...</code>, <code>S-1-5-80-...</code>, <code>S-1-5-82-...</code>), salvo que sepas exactamente qué haces.</li>
<li>Para SIDs de dominio, reemplaza solo la base <code>S-1-5-21-XXXXXXXXX-YYYYYYYYY-ZZZZZZZZ</code> por tu <i>DomainSID</i> y conserva el RID final (<code>-512</code>, <code>-516</code>, etc.).</li>
<li>Si ves RIDs “no estándar” (p. ej., <code>-5602</code>), comprueba que <b>existan</b> en tu dominio. Si no existen, elimínalos o sustitúyelos por el grupo correcto.</li>
</ul>
<h2>Alternativas útiles con Secedit (exportar/importar plantillas)</h2>
<p>Además del trabajo directo en el GPO, <code>secedit</code> ofrece una vía para <b>exportar</b> la seguridad desde un DC sano (o un lab) y usar eso como base:</p>
<ol>
<li>En un DC de referencia (o lab), exporta la configuración:
<pre><code class="language-cmd">secedit /export /cfg C:\Temp\DDCP-Ref.inf /areas SECURITYPOLICY USER_RIGHTS
Revisa y ajusta los SIDs de dominio si el archivo proviene de otro bosque.
Coloca el contenido resultante en el GptTmpl.inf
de la DDCP, o aplícalo de forma local para verificar su efecto:
secedit /configure /db C:\Windows\Security\Database\secedit.sdb /cfg C:\Temp\DDCP-Ref.inf /areas SECURITYPOLICY USER_RIGHTS /overwrite
Nota: secedit /configure
aplica en la base de seguridad local del DC; para que quede persistente en el GPO y se replique, el archivo debe vivir bajo la ruta del GPO en SYSVOL
.
Validaciones y salud posterior a la recuperación
- Actualizar y comprobar:
gpupdate /force gpresult /H C:\Temp\GPResult-DC.html
- Revisión de eventos: Visor de eventos → Applications and Services Logs → Microsoft → Windows → GroupPolicy → Operational. Comprueba que el procesamiento de la DDCP finaliza sin errores.
- Integridad y replicación de SYSVOL (DFSR):
repadmin /replsummary dfsrdiag backlog /rgname:"Domain System Volume" /rfname:"SYSVOL Share" /smem:<DCA> /rmem:<DCB>
El backlog debería ser cero o tender a cero tras unos minutos. - Permisos en el GPO: En GPMC → pestaña Delegation, verifica que Authenticated Users (o el grupo equivalente) tengan Read y Apply cuando corresponda, y que Domain Controllers puedan leerlo/aplicarlo.
Buenas prácticas para no reincidir
- Backups programados de GPO (GPMC o
Backup-GPO
por PowerShell) y control de cambios. - Versionado: mantén un repositorio interno con los
GptTmpl.inf
de referencia (sin datos sensibles). - Revisiones periódicas de resultados de directiva en los DCs (p. ej., una tarea que ejecute
gpresult
y alerte cambios anómalos). - DFSR sano: monitorea la salud de replicación para evitar que pérdidas o corrupciones locales se propaguen.
Guía paso a paso rápida (receta de campo)
- Respalda DDCP y DDP desde GPMC. Genera Reports.
- Ejecuta
dcdiag
yrepadmin
. Corrige replicación si falla. - Aplica Opción 1:
dcgpofix /target:dc
Si procede:dcgpofix /target:both
gpupdate /force
en todos los DCs. Revisa eventos de Group Policy.- Valida con
gpresult
que los User Rights correctos están vigentes. - Si tenías personalizaciones, vuelve a aplicarlas en la DDCP (o en GPOs separados con precedencia controlada).
Preguntas frecuentes y errores típicos
“Probé dpogpfix y no funcionó”. El ejecutable correcto es dcgpofix.exe
. Si al ejecutarlo no hay cambios, suele ser por replicación rota o por permisos insuficientes.
“El editor de Seguridad no abre la DDCP”. Crea el INF mínimo mostrado antes y vuelve a intentarlo; con eso, el snap‑in recupera la estructura y podrás completar los ajustes.
“Perderé configuraciones”. Sí: dcgpofix
restaura valores predeterminados. Por eso es clave el backup y el reporte previos para reintroducir lo que necesites después (idealmente en un GPO separado, no en la DDCP).
“Qué partes repara GptTmpl.inf”. Solo la porción de Security Settings. Preferencias, scripts, redirecciones de carpetas u otros nodos del GPO no dependen de este archivo.
“Cómo saber mi DomainSID para editar INF a mano”. Usa:
(Get-ADDomain).DomainSID.Value
Sustituye la base en SIDs de dominio y conserva los RIDs del final.
Ejemplo de restablecimiento completo con PowerShell y GPMC
- Respalda GPOs:
New-Item -ItemType Directory -Force -Path C:\GPO-Backup | Out-Null Backup-GPO -All -Path C:\GPO-Backup
- Verifica replicación:
dcdiag /e /v repadmin /replsummary
- Restaura DDCP:
dcgpofix /target:dc
- Fuerza aplicación y genera informe:
gpupdate /force gpresult /H C:\Temp\GPResult-DC.html
- Si necesitas recuperar personalizaciones, compáralas con los informes de backup y reintrodúcelas de forma controlada (idealmente en GPOs específicos por tema).
Conclusiones prácticas
- Para recuperar
GptTmpl.inf
de la DDCP con SIDs correctos, el camino más seguro y rápido esdcgpofix /target:dc
(o/target:both
si también falla la DDP). - Si necesitas más control, importa la DDCP desde un lab con mapeo de identidades de GPMC.
- Si urge, crea un INF mínimo para desbloquear el editor y luego completa los ajustes de seguridad desde GPMC.
- Si editas un INF copiado, solo reemplaza la base del DomainSID, respeta los RIDs, valida cada identidad y evita SIDs inexistentes.
- Tras la recuperación, verifica SYSVOL/DFSR, fuerza gpupdate en los DCs y confirma con gpresult que la DDCP vuelve a aplicar sin errores.