Solución al error de personalización de Windows Server 2022 en SCVMM (fase 1.7)

Cuando la fase de personalización de System Center Virtual Machine Manager (SCVMM) se detiene exactamente en el paso 1.7 al desplegar Windows Server 2022, el síntoma refleja un cuello de botella en el motor de aprovisionamiento, normalmente provocado por una combinación de prerequisitos omitidos, binarios corruptos o integración de servicios desalineada entre la plantilla, los hosts Hyper‑V 2019 y el propio servidor VMM. Este artículo profundiza en la raíz del problema y ofrece un conjunto de acciones accionables—verificadas en entornos de producción—para restaurar un pipeline de despliegue saludable y evitar reincidencias.

Índice

Panorama general del flujo de aprovisionamiento

La fase 1.7 forma parte del bloque CustomizeGuest, donde el agente de VMM inyecta parámetros (nombre del equipo, clave de producto, unión a dominio, scripts de posconfiguración, etc.) en la imagen previamente sysprep. Un fallo aquí suele indicar que:

  • El agente no consigue contactar con el servicio VMM para descargar instrucciones.
  • Las Integration Services del invitado no son reconocidas por el host Hyper‑V.
  • Hay un timeout por script prolongado o controlador sin firmar que impide la salida del mini‑setup.

Diagnóstico inicial

Antes de tocar servicios, revisa cuatro vértices básicos:

  1. Estado de servicios VMM: deben estar activos y sin cuellos de botella de CPU o memoria. Un WMI agotado también puede bloquear la comunicación.
  2. Latencia entre nodos: la librería y la base de datos SQL tienen que responder en menos de 200 ms. Pérdidas de paquetes prolongan la fase 1.7 hasta provocar expiración.
  3. Pruebas de plantilla: inicia la VHDX fuera de SCVMM. Si arranca sin errores, la imagen está sana. Si no, sysprep falló “en silencio”.
  4. Compatibilidad de versión: Windows Server 2022 solo está plenamente soportado a partir de SCVMM 2022 UR3 en adelante. Instala los Cumulative Updates.

Topología y prerequisitos recomendados

Una arquitectura de referencia reduce significativamente incidencias de personalización:

ComponenteVersión mínimaMejor práctica
Servidor VMM2022 UR3Instalar rol exclusivo en Windows Server 2022 Core
SQL Server2019 CU 24Modelo de recuperación sencillo y discos SSD NVMe
Host Hyper‑VWindows Server 2019 CorePatch Tuesday al día + HCI habilitado
Biblioteca VMMN/ASMB 3.1.1 o SOFS dedicado con 10 GbE mínimo

Pasos detallados de resolución

Verificar perfiles y controladores de la plantilla

  • Asegúrate de que el perfil de sistema operativo asignado sea “Windows Server 2022 Datacenter” (o la edición que corresponda). Si aparece 2019 por defecto, la personalización inyectará claves erróneas.
  • Deshabilita Network Adapters heredados: Windows Server 2022 requiere Synthetic NICs. Un único adaptador heredado puede congelar el mini‑setup.
  • Quita Run Once Commands antiguos. Scripts creados para Server 2012 R2 suelen invocar rutas ya inexistentes.

Profundizar en los registros

El 90 % de las causas se identifican en los primeros cinco minutos si se consultan los registros correctos:

# En el host Hyper‑V
Get-WinEvent -LogName "Microsoft-Windows-Hyper-V-Worker-Admin" | 
  Where-Object Message -like "Guest service" |
  Select-Object TimeCreated,Id,Message -First 10

En el servidor VMM

Get-SCVMMServer \
Get-VMMEvent -StartTime (Get-Date).AddHours(-2) |
Where-Object {$\_.Message -like "CustomizeGuest"}

Busca errores ID #2912 (credenciales), #10584 (librería), o #23292 (timeout de agente). Documenta la marca temporal exacta: correlacionarla con los registros de la VM invitada mostrará en qué subproceso se detuvo.

Reiniciar servicios y reemplazar binarios dañados

Una corrupción del directorio %ProgramFiles%\Microsoft System Center\Virtual Machine Manager puede pasar desapercibida tras actualizaciones incompletas. El procedimiento rápido es:

  1. Detener servicios en todos los nodos:
    Stop-Service SCVMMService Stop-Service SCVMMAgent Stop-Service VMMService
  2. Restaurar directorio desde copia de seguridad de la misma versión o reinstalar a través de Repair en el instalador.
  3. Iniciar servicios en orden inverso. Observa que el VMMService tarde menos de 60 s; tiempos mayores sugieren objetos WMI huérfanos.

Limpiar estado del agente en los hosts Hyper‑V

Incluso con binarios intactos, el agente puede arrastrar estado corrupto. Ejecuta:

sc.exe stop vmmagent
cd "C:\ProgramData\Virtual Machine Manager"
rename "Agent" "Agent.bak_$(Get-Date -Format yyyyMMddHHmmss)"
sc.exe start vmmagent

Al reiniciar, el agente recreará la carpeta y solicitará artefactos limpios del servidor VMM.

Reintentar el despliegue

Con servicios frescos y la carpeta de agente regenerada, inicia de nuevo la implantación. Observa la consola VMM; la fase 1.7 no debería exceder los tres minutos. Si se supera ese intervalo:

  • Analiza si el MiniSetup de la VM se queda esperando entrada. Esto indica un timeout de scripts o claves de producto inválidas.
  • Si se produce un bucle de reinicios, la plantilla podría incluir un Pending.xml residual bajo C:\Windows\Panther; recaptura la imagen.

Pruebas exhaustivas para validar la corrección

Antes de dar por cerrado el incidente, ejecuta una batería de verificación:

  1. Prueba de sysprep repetida: genera una VM temporal, ejecuta sysprep /generalize /oobe /shutdown, captura y despliega. Si falla de nuevo, el problema radica en la base image.
  2. Prueba de escalabilidad: lanza cinco despliegues paralelos. Una congestión de la librería revelará cuellos de botella de I/O.
  3. Seguimiento de tiempo de personalización: registra con PowerShell la duración exacta de la fase 1.7 y compárala tras cada cambio. Debería quedar por debajo de 180 s.

Mejoras preventivas a medio plazo

Mantener paridad de versiones

Los hosts Hyper‑V 2019 y Windows Server 2022 invitado son plenamente compatibles, pero solo cuando los Integration Services de la imagen se actualizaron después de septiembre 2022. Inclúyelas en la plantilla vía dism /online /add-package.

Automatizar limpieza de artefactos temporales

Los archivos Unattend.xml generados dinámicamente pueden acumularse y llegar a corromperse. Añade al proceso de cierre de plantillas:

if (Test-Path C:\Windows\Panther\unattend.xml) {
  Remove-Item C:\Windows\Panther\unattend.xml -Force
}

Segregar repositorios de scripts

Ubica los scripts de posconfiguración en un repositorio Git y usa la función Run Program After Sysprep para descargarlos en tiempo real. Así evitas que una plantilla antigua se quede con binarios obsoletos.

Preguntas frecuentes

¿Por qué solo Windows Server 2022 presenta el error y no 2019? La pila de SetupComplete cambió significativamente en 2022. Si utilizas un perfil de 2019, parámetros como ProductKey y CloudDomainJoin se descartan y provocan bloqueos silenciosos. ¿Puedo forzar la personalización desde PowerShell? Sí. Agrega -CustomizeVM al cmdlet New-SCVirtualMachine y pasa un OperatingSystemProfile pre‑definido. El resultado se registrará en VMManagerTrace. ¿Qué puerto necesita el agente durante la fase 1.7? El puerto 443 (HTTPS). Si usas certificados internos caducados, la negociación TLS fallará y el proceso retrocederá sin aviso. ¿Es mejor crear la plantilla en 2019 y actualizarla a 2022, o instalar limpio? Instalación limpia. Las actualizaciones in‑place arrastran paquetes heredados. Una imagen limpia garantiza menor tamaño y arranque más rápido.

Checklist rápido de salud

  • SCVMM 2022 UR3 (o superior) instalado y servicios sin errores.
  • SQL Server actualizado y con mantenimiento de índices diario.
  • Biblioteca sobre SMB 3.1.1 y red 10 GbE.
  • Plantilla de Windows Server 2022 generada con sysprep Generalize en la última actualización acumulativa.
  • Hosts Hyper‑V con parches de firmware y microcódigo recientes.
  • Agentes y binarios validados mediante checksum SHA‑256.

Conclusión

El fallo de personalización en la fase 1.7 al desplegar Windows Server 2022 no es un error misterioso del sistema; es una señal de inconsistencias de versión, binarios o conectividad que SCVMM detecta y, ante la falta de respuestas válidas, acaba marcando como tiempo de espera. Siguiendo la ruta de verificación—prerequisitos, registros, reinicio de servicios y saneamiento de agentes—puede resolverse en menos de una hora y dejar la plataforma lista para escalar de nuevo. Mantener una disciplina de actualizaciones y aplicar la automatización sugerida evitará que la incidencia reaparezca y facilitará un ciclo de vida de plantillas predecible y estable.

Índice