Ir al contenido
12 · Líneas base de seguridadParte 2 de 4Intermedio

Policy Analyzer y LGPO: comparar y aplicar líneas base

Usa Policy Analyzer para comparar GPO, líneas base y directiva efectiva, y LGPO.exe para probar, aplicar y exportar la directiva local en equipos aislados y laboratorios.

Florian Amette9 min de lectura

La guía principal de líneas base de seguridad presenta el Microsoft Security Compliance Toolkit y sus dos utilidades. Esta guía explica cómo usarlas en el día a día: Policy Analyzer para responder a "¿qué es distinto, y dónde?", y LGPO.exe para aplicar, exportar e inspeccionar la directiva local. Juntas son la forma más rápida de probar una línea base en una máquina antes de que llegue a una GPO, y de demostrar a un auditor lo que una máquina ejecuta realmente.

Ambas herramientas se descargan gratis desde la página del Security Compliance Toolkit en el Centro de descargas de Microsoft y funcionan en Windows 11 y en Windows Server 2016 y posteriores. Descarga al mismo tiempo los paquetes de línea base actuales; cada uno contiene copias de seguridad de GPO, hojas de cálculo de documentación y una carpeta Scripts que espera encontrar LGPO.exe en Scripts\Tools.

Qué lee y qué escribe cada herramienta

Policy AnalyzerLGPO.exe
FinalidadComparar conjuntos de directivas y el estado efectivoImportar, exportar y analizar la directiva de grupo local
EntradasCopias de seguridad de GPO, registry.pol, plantillas de seguridad (GptTmpl.inf), audit.csv de auditoría avanzadaLo mismo, más archivos de texto de LGPO y .PolicyRules
SalidaVista de cuadrícula, exportación a Excel, archivos .PolicyRulesDirectiva local en la máquina, copias de seguridad de GPO, volcados de texto
Requiere administradorSolo para capturar el estado efectivoSí, para aplicar

Paso 1: crea conjuntos de reglas en Policy Analyzer

Inicia PolicyAnalyzer.exe y haz clic en Add. Policy File Importer te permite añadir archivos individuales o una carpeta completa de copia de seguridad de GPO (File > Add files from GPO(s)) y guardar después la combinación como un conjunto .PolicyRules con nombre. Crea al menos tres:

  1. Línea base: las GPO de la línea base de Microsoft para tu sistema operativo y rol, por ejemplo las GPO de equipo y de usuario de Windows 11 24H2, más las líneas base de Edge y de Microsoft 365 Apps.
  2. Actual: una copia de seguridad de todas las GPO que se aplican a la OU de destino. Expórtalas con Backup-GPO, o todas a la vez:
PowerShell
New-Item -ItemType Directory C:\GPOBackup\Workstations -Force | Out-Null
(Get-GPInheritance -Target 'OU=Workstations,DC=corp,DC=example').InheritedGpoLinks |
  ForEach-Object { Backup-GPO -Guid $_.GpoId -Path C:\GPOBackup\Workstations }
  1. Línea base anterior: la última versión que desplegaste, para compararla con una versión nueva.

Guarda los archivos .PolicyRules en control de código fuente junto a tu registro de desviaciones. Son archivos XML pequeños y constituyen una evidencia excelente.

Paso 2: compara y lee la cuadrícula

Selecciona dos o más conjuntos de reglas y haz clic en View / Compare. Cada fila es una configuración; cada columna muestra su valor en un conjunto. Filtra la vista con Show only differences o Show only conflicts:

  • Un conflicto es la misma configuración con valores distintos en dos conjuntos. Entre la línea base y la actual, cada conflicto es o bien una brecha que corregir o bien una desviación que documentar.
  • Una configuración presente en la actual pero ausente de la línea base no es necesariamente un error: las líneas base de Microsoft omiten las configuraciones cuyo valor predeterminado ya es seguro. Pero revisa las que debiliten un valor predeterminado, como volver a habilitar SMBv1, los hashes LM o WDigest (consulta inicios de sesión en caché y WDigest).
  • La misma configuración definida en varias de tus GPO, aunque sea con el mismo valor, es un riesgo de mantenimiento. Consolídala.

Usa Export > Export table to Excel para compartir el resultado. Ante una nueva versión de la línea base, compara la anterior con la nueva: la diferencia es tu lista de cambios, y es más corta que leer todas las notas de la versión.

Paso 3: compara con el estado efectivo

Es el modo más útil para las auditorías: ejecuta Policy Analyzer como administrador en la máquina de destino, selecciona el conjunto de la línea base y marca Compare to Effective State. Policy Analyzer lee los valores de directiva del registro, la configuración de seguridad y la directiva de auditoría actuales de la máquina y los añade como una columna.

Así se detecta lo que se escapa en las revisiones de GPO:

  • Configuraciones cambiadas por scripts, instaladores o administradores locales.
  • GPO que no se aplican por filtros WMI, por filtrado de seguridad o por un equipo en la OU equivocada.
  • Valores entregados por MDM, que aparecen en el estado efectivo aunque ninguna GPO los defina.

Guarda el estado efectivo como un conjunto .PolicyRules propio con el nombre de la máquina y la fecha. Dos instantáneas de la misma máquina con un mes de diferencia son una comprobación rápida de la deriva; la guía de deriva de configuración explica cómo automatizarlo.

Paso 4: aplica una línea base localmente con LGPO

En una máquina virtual de laboratorio, un servidor independiente o una imagen de referencia, aplica las copias de seguridad de GPO de la línea base directamente a la directiva local:

PowerShell
# Aplicar todas las copias de seguridad de GPO que haya en la carpeta
.\LGPO.exe /g "C:\SCT\Windows 11 v24H2 Security Baseline\GPOs"

# O aplicar componentes individuales
.\LGPO.exe /m C:\Policy\machine-registry.pol     # registry.pol de equipo
.\LGPO.exe /u C:\Policy\user-registry.pol        # registry.pol de usuario
.\LGPO.exe /s C:\Policy\GptTmpl.inf              # plantilla de seguridad
.\LGPO.exe /a C:\Policy\audit.csv                # directiva de auditoría avanzada
.\LGPO.exe /p C:\Policy\Baseline.PolicyRules     # un conjunto de reglas de Policy Analyzer

Los paquetes de línea base incluyen además Baseline-LocalInstall.ps1 en la carpeta Scripts, que aplica la combinación de GPO adecuada con LGPO y admite modificadores para máquinas unidas o no a un dominio. Ejecuta Get-Help .\Baseline-LocalInstall.ps1 -Detailed para ver las opciones de tu versión del paquete; la opción para máquinas no unidas a un dominio omite las configuraciones que bloquearían la administración remota de una máquina independiente.

Reinicia después de aplicar, porque varias configuraciones de seguridad (por ejemplo, las de LSA y credenciales) solo surten efecto en el arranque.

Paso 5: exporta y edita la directiva local como texto

LGPO puede hacer una copia de seguridad de la directiva local en formato de copia de seguridad de GPO, que después puedes importar en una GPO de dominio o en Policy Analyzer:

PowerShell
.\LGPO.exe /b C:\Export /n "Lab build - local policy"

Para leer o editar un registry.pol, conviértelo al formato de texto de LGPO, edítalo y aplica el archivo de texto:

PowerShell
.\LGPO.exe /parse /m C:\Windows\System32\GroupPolicy\Machine\Registry.pol > C:\Temp\machine.txt
.\LGPO.exe /t C:\Temp\machine.txt

El formato de texto tiene cuatro líneas por configuración (configuración, clave, nombre del valor, tipo y datos), separadas por una línea en blanco:

Text
Computer
Software\Policies\Microsoft\Windows NT\DNSClient
EnableMulticast
DWORD:0

Usa DELETE en lugar de un tipo para eliminar un valor. También es una forma práctica de crear una pequeña directiva local para un servidor de salto o un quiosco sin dominio, y de mantenerla en control de código fuente.

Paso 6: organiza tus desviaciones por capas para el dominio

Una vez probada una línea base localmente, llévala al dominio en dos capas: las GPO de la línea base importadas sin modificar y una GPO aparte, de mayor precedencia, que contenga solo tus desviaciones. Construye esa GPO de desviaciones de forma deliberada:

  1. En Policy Analyzer, compara el conjunto de la línea base con el estado efectivo de una máquina piloto probada en la que hayas aplicado tus excepciones.
  2. Las diferencias son exactamente tus desviaciones. Contrasta cada una con el registro de desviaciones; lo que no esté documentado es un accidente o una decisión sin documentar.
  3. Crea la GPO de desviaciones solo con esas configuraciones, haz una copia de seguridad y añádela como conjunto de reglas propio para que las comparaciones futuras muestren en paralelo la línea base, las desviaciones y el estado efectivo.

Para un servidor de salto o un servidor independiente, haz lo mismo con LGPO: aplica la línea base con /g y después tus desviaciones con /t desde un archivo de texto guardado en control de código fuente. Al reconstruir la máquina se reproduce exactamente la misma directiva local.

Verificación

Después de aplicar, confirma lo que la máquina procesa realmente:

PowerShell
gpresult /scope computer /h C:\Temp\gpresult.html
auditpol /get /category:* | Out-File C:\Temp\auditpol.txt
secedit /export /cfg C:\Temp\secpol.inf /areas SECURITYPOLICY USER_RIGHTS

Después vuelve a ejecutar Policy Analyzer con Compare to Effective State frente al conjunto de la línea base. Las únicas diferencias que deberían quedar son las de tu registro de desviaciones. Los errores del procesamiento de directivas de grupo aparecen en el registro System con el origen Microsoft-Windows-GroupPolicy (el evento 1085 es una extensión del lado del cliente con error; el 1129 y el 1054 suelen indicar problemas de conectividad de red o con el DC), y en detalle en Applications and Services Logs > Microsoft > Windows > GroupPolicy > Operational.

Qué se rompe

  • Las GPO de dominio sobrescriben LGPO. La directiva local se procesa primero, así que todo lo que defina una GPO de dominio prevalece. Prueba la configuración destinada al dominio en una GPO vinculada a una OU de laboratorio.
  • Tatuaje (tattooing). Las configuraciones escritas fuera de las claves de registro Policies (por ejemplo, algunos valores heredados MSS y configuraciones de plantillas de seguridad) permanecen en la máquina cuando quitas la directiva. Para restablecerlas hay que establecer explícitamente el valor anterior, no eliminar la directiva.
  • Quedarse sin acceso a un servidor independiente. La línea base para máquinas unidas a un dominio deniega el inicio de sesión de red a las cuentas locales. En una máquina de grupo de trabajo esa es tu única forma de entrar; usa la opción para máquinas no unidas a un dominio.
  • Directiva de auditoría ignorada. La configuración de auditoría avanzada solo prevalece sobre las categorías heredadas cuando está habilitada Audit: Force audit policy subcategory settings to override audit policy category settings, cosa que hace la línea base de Microsoft. Compruébalo cuando la auditoría no parezca correcta (consulta directiva de auditoría y Sysmon).

Lista de comprobación

  • Descargados el SCT, Policy Analyzer, LGPO y los paquetes de línea base actuales
  • Conjuntos .PolicyRules de la línea base, las GPO actuales y la línea base anterior, en control de código fuente
  • Conflictos entre las GPO actuales y la línea base resueltos o documentados
  • Estado efectivo de una muestra de máquinas comparado con la línea base
  • Línea base probada localmente con LGPO en una máquina de laboratorio antes del despliegue por GPO
  • Servidores independientes configurados con la opción de línea base para máquinas no unidas a un dominio
  • Directiva local de los equipos de uso especial exportada y versionada
  • Nuevas versiones de la línea base comparadas con la versión anterior

Policy Analyzer y LGPO hacen que las líneas base se puedan probar y demostrar. Para la parte administrada con Intune del mismo problema, consulta líneas base de seguridad de Intune, y recorre toda el área de líneas base de seguridad.

Preguntas frecuentes

¿Funciona LGPO en máquinas unidas a un dominio?

Escribe la directiva de grupo local, que se procesa primero y queda invalidada por cualquier GPO de dominio que defina la misma configuración. Eso hace de LGPO una herramienta ideal para servidores independientes, pruebas de laboratorio e imágenes, pero una mala forma de administrar miembros del dominio: el dominio gana, y la configuración que aplicaste localmente puede sustituirse en silencio en la siguiente actualización.

¿Dónde guarda Policy Analyzer sus datos?

Cada conjunto importado se guarda como un archivo .PolicyRules, un documento XML que contiene configuraciones basadas en el registro, de plantilla de seguridad y de auditoría avanzada. De forma predeterminada están en una carpeta PolicyAnalyzer dentro de tus Documentos. Puedes versionar estos archivos en control de código fuente, compartirlos con los auditores y pasarlos a LGPO con la opción /p.

¿Puede Policy Analyzer comparar directivas de Intune?

No directamente. Entiende copias de seguridad de GPO, archivos registry.pol, plantillas de seguridad y archivos CSV de auditoría. Para Intune, compara en su lugar el estado efectivo del dispositivo, ya que la configuración entregada por MDM aparece en la directiva efectiva, o usa Group Policy analytics en Intune para ver cómo se corresponden tus GPO con la configuración MDM.

Policy Analyzer y LGPO: comparar y aplicar líneas base

Guías relacionadas

Líneas base de seguridad

Líneas base de Windows: Microsoft SCT, CIS y STIG

Compara el Security Compliance Toolkit, CIS y los STIG de DISA, aplica uno con Policy Analyzer y LGPO, añade tus configuraciones y registra cada desviación.

Básico
Control de aplicaciones

AppLocker paso a paso: scripts, instaladores y apps

Despliega AppLocker con seguridad: servicio Application Identity, modo auditoría, reglas de editor para EXE, scripts, MSI y apps empaquetadas, y carpetas con escritura.

Intermedio
Líneas base de seguridad

Deriva de configuración: OSConfig, DSC e informes

Detecta y corrige la deriva de configuración en Windows: OSConfig en Server 2025, autocorrección con DSC, reprocesamiento de GPO, eventos de cambio e informes.

Avanzado