# Script para Exportar Reportes XML de Todas las GPOs de un Dominio

- Link: https://binariocero.com/windows/script-para-exportar-reportes-xml-de-todas-las-gpos-de-un-dominio
- Published: 2025-06-14T22:24:00+02:00
- Author: Juan José Fernández Durán

![Loading](https://binariocero.com/wp-content/plugins/page-views-count/ajax-loader-
2x.gif)

    ```wp-block-code
    # Definir el dominio (puede ser FQDN como ejemplo.local o NetBIOS como EJEMPLO)
    $Dominio = "empresa.local"

    # Ruta de destino donde guardar los reportes XML
    $RutaDestino = "C:\GPO_Reports"

    # Crear carpeta si no existe
    if (!(Test-Path -Path $RutaDestino)) {
        New-Item -ItemType Directory -Path $RutaDestino
    }

    # Obtener todas las GPOs del dominio especificado
    $GPOs = Get-GPO -All -Domain $Dominio

    # Generar reportes XML para cada GPO
    foreach ($GPO in $GPOs) {
        $NombreLimpio = ($GPO.DisplayName -replace '[\\/:*?"<>|]', '_')  # Evitar caracteres inválidos en nombres de archivo
        $RutaReporte = Join-Path -Path $RutaDestino -ChildPath "$NombreLimpio.xml"
        Get-GPOReport -Guid $GPO.Id -ReportType Xml -Path $RutaReporte -Domain $Dominio
    }

    Write-Output "Todos los reportes XML han sido generados en: $RutaDestino"
    ```

### Exportar Reportes XML de Todas las GPOs de un Dominio con PowerShell

Las **Directivas de Grupo (Group Policy Objects - GPOs)** son un componente esencial
para administrar configuraciones en un entorno Windows basado en Active Directory.
Contar con un respaldo o un reporte detallado de estas políticas es vital para auditorías,
análisis o documentación.

Este script de PowerShell automatiza la extracción de reportes en formato XML de
todas las GPOs en un dominio específico.

#### ¿Qué hace este script?

 1. **Define el dominio** sobre el cual se quiere trabajar. Puede ser un nombre de 
    dominio completo (FQDN) o un nombre NetBIOS.
 2. **Establece una ruta de destino** en el equipo local donde se guardarán los reportes
    XML.
 3. **Verifica si la carpeta de destino existe**, y si no, la crea automáticamente.
 4. **Obtiene todas las GPOs del dominio** definido usando el cmdlet `Get-GPO`.
 5. **Genera un reporte XML para cada GPO**, limpiando el nombre para evitar caracteres
    inválidos en los archivos.
 6. **Guarda cada reporte en la ruta especificada**.
 7. Finalmente, muestra un mensaje indicando que la operación ha concluido correctamente.

#### ¿Por qué usar XML?

El formato XML es legible tanto para humanos como para máquinas, lo que facilita
el análisis automatizado o la integración con otras herramientas de auditoría o 
documentación.

#### Requisitos

 * Tener instalado el módulo de Group Policy en PowerShell.
 * Permisos adecuados para leer la configuración de las GPOs en el dominio.
 * Ejecutar el script desde un equipo que esté unido al dominio o que tenga conectividad
   y credenciales adecuadas.
