Problema

En entornos Windows con DNS integrado en Active Directory, la eliminación accidental de una zona primaria puede dejarla “zombie”: el objeto aparece como deleted en el contenedor CN=Deleted Objects, PowerShell la lista, pero la consola DNS Manager no la muestra y los clientes dejan de resolver. El síntoma típico es que consultas DNS devuelven NXDOMAIN y la zona no está visible en la GUI, aunque sigue existiendo como un objeto borrado con el sufijo -deleted-<guid>. La falta de una recuperación clara genera interrupciones de servicio y obliga a decidir entre restaurar desde el AD Recycle Bin, recrear la zona manualmente o realizar una restauración completa del controlador de dominio.

Causa

Las causas más habituales son:

  1. Eliminación directa de la zona – Un administrador usa DNS Manager o Remove-DnsServerZone sin activar la opción “Allow deletion of this zone”. El objeto pasa a CN=Deleted Objects y queda “marcado” como eliminado.
  2. Fallo de replicación – El controlador que ejecutó la eliminación no replica a tiempo; otros DCs siguen viendo la zona mientras el primero la marca como borrada, creando un estado inconsistente.
  3. Desactivación del AD Recycle Bin – Sin el contenedor de objetos borrados, la única vía es restaurar desde backup, lo que complica la recuperación.
  4. Confusión entre objetos DNS y contenedores AD – En AD, la zona es un objeto dnsZone. Si se restaura solo el contenedor sin sus registros, la zona aparece vacía o corrupta.
  5. Políticas de retención – Un tiempo de vida corto del objeto borrado (configuración de msDS-DeletedObjectLifetime) puede hacer que desaparezca antes de que se inicie la restauración.

Solución

Una estrategia robusta combina tres pasos: identificar el objeto borrado, restaurarlo con AD Recycle Bin y forzar la replicación. Si el Recycle Bin no está habilitado o el objeto ya expiró, la alternativa es usar Veeam (o cualquier backup de AD) para extraer la zona y volver a importarla.

1. Verificar que el AD Recycle Bin está activo

Get-ADOptionalFeature -Filter {Name -like "Recycle Bin Feature"} | ft Name,EnabledScopes

Si EnabledScopes está vacío, el Recycle Bin no está habilitado; en ese caso, la única vía es restaurar desde backup.

2. Localizar la zona borrada

Get-ADObject -Filter {ObjectClass -eq "dnsZone" -and IsDeleted -eq $true} -IncludeDeletedObjects |
  Select-Object Name,DistinguishedName,DeletedTime

El nombre aparecerá con el sufijo -deleted-<guid>. Copia el DistinguishedName completo; lo necesitaremos para la restauración.

3. Restaurar el objeto

Restore-ADObject -Identity "<DistinguishedName copiado>"

El comando devuelve sin errores si la restauración fue exitosa. En algunos casos el objeto vuelve a aparecer como “deleted” porque el contenedor padre sigue marcado. En ese caso, restaura también el contenedor CN=MicrosoftDNS si está en Deleted Objects.

4. Forzar replicación

repadmin /syncall /AdeP

Esto asegura que todos los DCs reciban la zona restaurada. Después de la replicación, abre DNS Manager; la zona debería estar visible.

5. Si la zona sigue ausente, usar Veeam para extraerla

  1. Montar el backup de un controlador de dominio anterior a la eliminación en modo offline.
  2. Iniciar en Directory Services Restore Mode (DSRM) y montar el NTDS.dit con ntdsutil.
  3. Exportar la zona usando ldifde:
ldifde -f C:\Temp\zone.ldf -d "CN=example.org,CN=MicrosoftDNS,DC=corp,DC=local" -p subtree
  1. Importar en el DC activo:
ldifde -i -f C:\Temp\zone.ldf -k -j C:\Temp
  1. Reiniciar el servicio DNS y forzar replicación nuevamente.

6. Limpieza de “zombie” residual

Si después de la restauración la zona aparece con el sufijo -deleted-…, elimina el objeto duplicado:

Get-ADObject -Filter {Name -like "*-deleted-*" -and ObjectClass -eq "dnsZone"} -IncludeDeletedObjects |
  Remove-ADObject -Confirm:$false

Luego ejecuta repadmin /syncall y verifica que solo exista la zona correcta.

Cuándo aplicar esta solución

  • Síntomas: zona desaparecida en DNS Manager, consultas NXDOMAIN, PowerShell muestra zona con -deleted- en su nombre, replicación muestra error 9006.
  • Entorno: AD DS con al menos dos controladores de dominio, DNS integrado en AD, AD Recycle Bin habilitado (preferible) o backups recientes disponibles.
  • No aplicar: si la zona se eliminó hace más de la vida configurada del objeto borrado y no hay backup, la única opción viable es recrear la zona y volver a importar los registros manualmente.
  • Escenarios especiales: cuando la zona contiene delegaciones críticas o registros SRV que no pueden perderse, siempre prioriza la restauración desde AD antes que una recreación manual.

Código

# Verificar Recycle Bin
Get-ADOptionalFeature -Filter {Name -like "Recycle Bin Feature"} | ft Name,EnabledScopes

# Listar zonas borradas
Get-ADObject -Filter {ObjectClass -eq "dnsZone" -and IsDeleted -eq $true} -IncludeDeletedObjects |
  Select-Object Name,DistinguishedName,DeletedTime

# Restaurar zona específica
Restore-ADObject -Identity "CN=example.org,CN=MicrosoftDNS,DC=corp,DC=local"

# Forzar replicación
repadmin /syncall /AdeP

# Exportar zona desde backup (DSRM)
ldifde -f C:\Temp\zone.ldf -d "CN=example.org,CN=MicrosoftDNS,DC=corp,DC=local" -p subtree

# Importar zona en DC activo
ldifde -i -f C:\Temp\zone.ldf -k -j C:\Temp

# Eliminar zombie residual
Get-ADObject -Filter {Name -like "*-deleted-*" -and ObjectClass -eq "dnsZone"} -IncludeDeletedObjects |
  Remove-ADObject -Confirm:$false

Verificación

  1. DNS Manager – La zona aparece bajo el nodo de zonas primarias y muestra los registros esperados.
  2. PowerShellGet-DnsServerZone -Name "example.org" devuelve la zona sin el sufijo -deleted.
  3. Prueba de resolución – Desde un cliente, nslookup host.example.org devuelve la dirección IP correcta.
  4. Replicaciónrepadmin /showrepl * /csv > repl.csv y verifica que todos los DCs tengan el mismo USNChanged para la zona.
  5. Event Viewer – No aparecen eventos 9006 (zona no encontrada) ni 1008 (error al cargar zona).

Notas adicionales

  • Mantén el AD Recycle Bin habilitado siempre que sea posible; evita la necesidad de restauraciones completas.
  • Configura una retención de al menos 30 días para objetos borrados (msDS-DeletedObjectLifetime) si tu política de backup lo permite.
  • Cuando uses Veeam, evita montar el backup en la red de producción; hacerlo offline reduce el riesgo de sobrescribir datos activos.
  • Después de cualquier restauración, revisa los registros de delegación y los apuntadores de zona (NS, SOA) porque pueden quedar desincronizados.
  • Si la zona contiene registros dinámicos (DHCP, AD‑integrated), verifica que los clientes sigan actualizando sus registros; un ipconfig /registerdns ayuda a confirmar la correcta publicación.