Cómo identificar equipos con instalación exitosa o fallida de Genian NAC desplegada por GPO en Windows Server

Pocas tareas son tan críticas para un administrador como garantizar que cada equipo reciba el agente de seguridad correcto. Después de distribuir Genian NAC mediante GPO, es vital saber con precisión qué instalaciones fueron exitosas y cuáles fallaron para corregirlas sin pérdida de tiempo.

Índice

Contexto y objetivos

Genian NAC proporciona visibilidad en tiempo real, control de acceso basado en políticas y protección de dispositivos. Al desplegarlo por Directiva de Grupo, la escala deja de ser un problema, pero aparecen nuevos retos: herencias complejas, dependencias de red, permisos del recurso compartido o simples apagados de equipo en el momento equivocado. Este artículo aborda un método completo para crear un inventario fiable de instalaciones exitosas y fallidas, y muestra cómo remediar los casos problemáticos sin reinstalar de forma masiva.

Requisitos previos y preparación

  • Acceso administrativo a un Domain Controller con la Consola de Administración de Directivas de Grupo (GPMC).
  • Permisos para leer los registros de eventos de los equipos destino.
  • Ruta UNC permanente y accesible para el paquete GenianNAC.msi.
  • Una estación de trabajo con PowerShell 5.1+ (o PowerShell 7 si se prefiere) y el módulo ActiveDirectory instalado.

Revisión de la directiva con GPMC

Antes de buscar culpables, verifica que la GPO esté configurada de forma óptima:

  1. Abre gpmc.msc y navega hasta la GPO que distribuye Genian NAC.
  2. En el panel derecho, expande Configuración de Software ▸ Instalación de Software y asegúrate de que:
    • El paquete MSI apunta a una ruta UNC (\\Servidor\Share\GenianNAC.msi), no a una ruta local.
    • La casilla Eliminar la configuración de instalación al eliminar la GPO está desmarcada (evita desinstalaciones inesperadas).
    • No hay advertencias amarillas ni iconos rojos.
  3. Confirma que la GPO está vinculada a la OU que contiene todos los equipos objetivo y que el enlace esté Habilitado.

Group Policy Results Wizard paso a paso

El asistente de resultados de directiva (o gpresult) es la forma más rápida de saber si la asignación de software se procesó:

  1. En la GPMC, haz clic secundario sobre Resultados de Directiva de Grupo y selecciona Resultados de directiva de grupo (Wizard).
  2. Elige Otro equipo → escribe el nombre FQDN del equipo a analizar.
  3. Selecciona Otro usuario e indica un usuario estándar –así ves tanto Configuración de Equipo como de Usuario.
  4. Finaliza el asistente y examina el informe HTML generado. Dentro de Configuración de Software ▸ Instalación de Software verás:
    • Asignación aplicada → la instalación empezó; revisa el Visor de eventos para confirmar si terminó.
    • Error de asignación → la causa se muestra abajo (acceso denegado, tiempo de espera, paquete no encontrado…).
  5. Guarda el informe (Guardar | Exportar); repite el proceso con varios equipos o usa gpresult /H informe.html desde PowerShell para automatizar lotes.

Interpretar el Visor de eventos

Mientras la GPO confirma que el paquete “llegó” al equipo, los log determinan si el MSI terminó bien.

OrigenIDSignificadoAcción recomendada
MsiInstaller1040Inicio de instalaciónVerifica que no se corte la energía ni la red
MsiInstaller11707Instalación correctaNinguna, marcar como Instalado
MsiInstaller11708 / 1035Instalación fallidaRevisa %WINDIR%\Temp\MSI*.log
Application Management102Asignación correctaConfirma ID 11707 posterior
Application Management103 / 108Asignación fallidaVerifica rutas UNC y permisos NTFS
Application Management117Tiempo de esperaAumenta Always wait for network o reinicia

Para exportar los eventos y filtrarlos masivamente:

Get-WinEvent -LogName Application -FilterHashtable @{
    ProviderName='MsiInstaller'
    Id=@(11707,11708)
    StartTime=(Get-Date).AddDays(-7)
} | Export-Csv C:\Temp\Genian_Eventos.csv -NoTypeInformation

Inventario con PowerShell

Ahora que entiendes cómo se ha procesado cada instalación, conviene generar un inventario central. El siguiente script realiza —en paralelo— un Get-CimInstance contra todos los equipos del dominio y devuelve un CSV con el estado:

Import-Module ActiveDirectory

Ajusta el número de hilos a tu entorno
$ThrottleLimit = 20
$Computers = Get-ADComputer -Filter {Enabled -eq $true} | Select-Object -ExpandProperty Name
$Results = @()

$ScriptBlock = {
    param($Computer)
    if (Test-Connection -ComputerName $Computer -Quiet -Count 1) {
        try {
            $product = Get-CimInstance -Class Win32_Product -ComputerName $Computer `
                       -Filter "Name = 'Genian NAC'" -ErrorAction Stop
            if ($product) {
                return [PSCustomObject]@{
                    Equipo   = $Computer
                    Estado   = 'Instalado'
                    Version  = $product.Version
                    Usuario  = (Get-CimInstance -Class Win32_ComputerSystem -ComputerName $Computer).Username
                    Fecha    = $product.InstallDate
                }
            }
        } catch {
            # ignorar errores de WMI no críticos
        }
    }
    [PSCustomObject]@{
        Equipo   = $Computer
        Estado   = 'No instalado'
        Version  = ''
        Usuario  = ''
        Fecha    = ''
    }
}

$Results = $Computers | ForEach-Object -Parallel $ScriptBlock -ThrottleLimit $ThrottleLimit
$Results | Export-Csv C:\Temp\GenianNAC_Resumen.csv -NoTypeInformation -Encoding UTF8

Write-Host "Archivo generado en C:\Temp\GenianNAC_Resumen.csv"

El fichero resultante servirá como fuente única de la verdad. Ábrelo en Excel o Power BI para filtrar los equipos No instalados y planificar la remediación.

Optimización del script

  • Para evitar los habituales Win32_Product freeze, usa el Uninstall GUID desde el registro (HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall) o el módulo Get-Package (PowerShell 5 + PackageManagement).
  • Si tu dominio es grande (>2000 equipos), lee los nombres a la carta (-SearchBase) o en bloques por OU.
  • Considera el parámetro -Authentication PacketPrivacy en redes duramente segmentadas.

Cómo procesar el CSV

Una vez tengas GenianNAC_Resumen.csv:

  1. Importa el archivo en Excel y aplica un filtro por Estado = No instalado.
  2. Añade una columna Motivo y, basándote en los eventos MsiInstaller (ID 11708), indica la causa: Acceso denegado, Paquete no encontrado, Tiempo de espera, etc.
  3. Si usas Microsoft Endpoint Configuration Manager (MECM) o Intune, importa la lista para crear colecciones dinámicas de remediación.

Estrategias de remediación inteligente

  • Conectividad primero: haz Test-Connection masivo para ver si los fallos se deben a equipos apagados o fuera de línea.
  • Permisos de lectura: asegúrate de que Authenticated Users tenga permisos Read y Read & Execute en la carpeta que aloja GenianNAC.msi.
  • Instalación silenciosa manual: msiexec /i "\\Servidor\Share\GenianNAC.msi" /qn /l*v C:\Temp\GenianNAC.log Repite la línea anterior con psexec o mediante una tarea programada para no interrumpir al usuario.
  • Forzar la GPO: mueve los equipos problemáticos a una OU de quarantena, aplica la GPO de nuevo y ejecuta gpupdate /force seguido de un reinicio.
  • Registro detallado: agrega el valor Logging en HKEYLOCALMACHINE\Software\Policies\Microsoft\Windows\Installer con datos voicewarmup para habilitar log avanzado MSI (útil en errores 1603 genéricos).

Buenas prácticas para despliegues futuros

La prevención es mejor que la corrección. Integra estos consejos en tu flujo de trabajo:

  • Ubica la GPO de instalación al nivel de dominio solo si todos los equipos deben recibir Genian NAC; de lo contrario, usa OUs específicas para evitar conflictos.
  • Habilita Always wait for the network at computer startup en Computer Configuration ▸ Policies ▸ Administrative Templates ▸ System ▸ Logon para equipos con Wi‑Fi o latencia elevada.
  • Incluye Genian NAC en tu golden image de Windows 10/11 y emplea la GPO solo para drift management.
  • Documenta la versión del MSI y actualízala regularmente; una GPO con múltiples revisiones causa herencias confusas.
  • Usa etiquetas de Dynamic Device Groups (si cuentas con Intune) para re‑instalar automáticamente cuando falle el agente.

Preguntas frecuentes

¿Puedo usar Win32_Product sin afectarle al sistema?

La clase Win32_Product reprocesa cada MSI instalado y puede disparar reparaciones; usa Get-Package o lee el registro para entornos críticos.

¿Existe un GUID fijo para Genian NAC?

No; cada versión del MSI crea su propio GUID. Obtén el valor desde HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall o con Get-Package -Name "Genian*".

¿Debo habilitar User Configuration o basta con Computer Configuration?

Para instalaciones de software, Computer Configuration es más robusto (se ejecuta en el arranque y no requiere sesión de usuario). Utiliza User Configuration solo si el MSI necesita variables de perfil.

Conclusión

Controlar el estado de instalación de Genian NAC después de un despliegue por GPO no tiene por qué ser un juego de adivinanzas. Con una combinación de GPMC, Group Policy Results Wizard, registros de eventos y PowerShell, obtendrás un inventario exhaustivo que te permitirá corregir fallos con cirugía de precisión y sin afectar a los equipos que ya funcionan. Integra las buenas prácticas descritas y tu próximo despliegue de software será más predecible, escalable y fácil de auditar.

Índice