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.
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:
- 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.
- 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.
- Pruebas de plantilla: inicia la VHDX fuera de SCVMM. Si arranca sin errores, la imagen está sana. Si no, sysprep falló “en silencio”.
- 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:
Componente | Versión mínima | Mejor práctica |
---|---|---|
Servidor VMM | 2022 UR3 | Instalar rol exclusivo en Windows Server 2022 Core |
SQL Server | 2019 CU 24 | Modelo de recuperación sencillo y discos SSD NVMe |
Host Hyper‑V | Windows Server 2019 Core | Patch Tuesday al día + HCI habilitado |
Biblioteca VMM | N/A | SMB 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:
- Detener servicios en todos los nodos:
Stop-Service SCVMMService Stop-Service SCVMMAgent Stop-Service VMMService
- Restaurar directorio desde copia de seguridad de la misma versión o reinstalar a través de Repair en el instalador.
- 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:
- 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. - Prueba de escalabilidad: lanza cinco despliegues paralelos. Una congestión de la librería revelará cuellos de botella de I/O.
- 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.