Si al ejecutar reagentc /info
o reagentc /disable
en Windows Server 2022 la consola queda “clavada” sin error visible (mientras reagentc /?
sí muestra ayuda), casi siempre hay una operación de mantenimiento del sistema ocupando en exclusiva WinRE. Aquí tienes una guía práctica para confirmarlo, resolverlo y, de paso, ajustar la partición de recuperación sin sorpresas.
Resumen del caso
- Servidor recién reinstalado con necesidad de corregir el tamaño de la partición de recuperación (WinRE).
reagentc /info
yreagentc /disable
se quedan esperando; soloreagentc /?
responde.- PowerShell ISE aparece eternamente en “loading”.
- Al invocar con
/logpath
, el log muestra “another installation in progress”. - Tras ~10 minutos,
reagentc
responde y todo vuelve a funcionar, pero con lentitud.
Causa técnica del bloqueo
ReAgentC administra Windows Recovery Environment (WinRE) y necesita acceso exclusivo al recurso donde residen sus archivos (normalmente winre.wim
en la partición de recuperación). Cuando hay servicing del sistema en curso—por ejemplo, Windows Update, TrustedInstaller/TiWorker, DISM, instalación de roles/características o incluso una operación SFC—se establece un bloqueo que impide tocar WinRE. De ahí que:
- La ayuda (
/?
) funcione: no toca WinRE ni intenta modificar nada. - Los comandos operativos (
/info
,/disable
,/enable
) queden en espera a que se libere el candado, aparentando “congelarse”. - El log muestre “another installation in progress”, que es la pista definitiva de que un proceso de mantenimiento se está ejecutando.
Cómo confirmarlo rápido
Antes de forzar nada, valida si efectivamente hay mantenimiento activo. Esta tabla resume síntomas, causa probable y cómo verificarlo.
Síntoma | Causa probable | Cómo comprobarlo |
---|---|---|
reagentc /info no responde | Bloqueo por mantenimiento (Windows Update / TrustedInstaller) | Get-Process -Name TiWorker,TrustedInstaller -ErrorAction SilentlyContinue Get-Service -Name TrustedInstaller,wuauserv | Format-Table Status,Name,DisplayName |
Log de ReAgentC con “another installation in progress” | Instalación o actualización en curso | reagentc /disable /logpath C:\temp\reagent.log type C:\temp\reagent.log |
PowerShell ISE en “loading” | Característica dañada o no registrada tras actualizaciones | Get-WindowsCapability -Online | ? Name -like 'PowerShell.ISE' |
Alta actividad de disco/CPU por TiWorker.exe | Windows Modules Installer aplicando paquetes | Monitoriza en el Administrador de tareas o con Get-Process |
Guía paso a paso para resolverlo
Validar y dejar que termine el servicing
- Comprueba procesos y servicios implicados:
Get-Process -Name TiWorker,TrustedInstaller -ErrorAction SilentlyContinue Get-Service -Name TrustedInstaller,wuauserv,bits | Format-Table Status,Name
Si TrustedInstaller/TiWorker están activos, espera a que finalicen. Evita “matar” estos procesos: podrías corromper el almacén de componentes (WinSxS). - Reinicia fuera de horario si el equipo acumula reinicios pendientes. Un reinicio limpio libera candados huérfanos.
- Reintenta tras unos minutos:
reagentc /info reagentc /disable /logpath C:\temp\reagent.log
Si ahora responde, continúa con el reajuste de WinRE.
Reinicializar WinRE una vez sin bloqueos
Este ciclo limpia referencias antiguas y reconfigura WinRE:
reagentc /disable
reagentc /enable
reagentc /info
Si el comando tarda, mantén el logging para ver progreso interno:
reagentc /disable /logpath C:\temp\reagent.log
reagentc /enable /logpath C:\temp\reagent.log
Cuando PowerShell ISE queda en “loading”
En ediciones con Desktop Experience, ISE es una característica opcional. Reinstalarla suele normalizar el arranque:
# Ver estado
Get-WindowsCapability -Online | ? Name -like 'Microsoft.Windows.PowerShell.ISE'
(Opcional) Quitar y volver a agregar
Remove-WindowsCapability -Online -Name Microsoft.Windows.PowerShell.ISE~~~~0.0.1.0
Add-WindowsCapability -Online -Name Microsoft.Windows.PowerShell.ISE~~~~0.0.1.0
También puedes hacerlo desde Configuración > Aplicaciones > Características opcionales.
Redimensionar correctamente la partición de recuperación (WinRE)
Muchas actualizaciones de WinRE requieren más espacio del habitual. La práctica recomendada es reservar ~1 GB para margen futuro. Procedimiento general:
Vista general del flujo
- Desactivar WinRE para soltar la partición:
reagentc /disable
- Ajustar el tamaño de la partición de recuperación (extender o recrear).
- Habilitar WinRE y comprobar estado:
reagentc /enable reagentc /info
Método con la GUI (Administración de discos)
- Abre diskmgmt.msc.
- Localiza la partición de recuperación (suele aparecer como “Recuperación”).
- Si hay espacio contiguo a su derecha, extiéndela hasta ~1 GB. Si no lo hay:
- Reduce ligeramente la partición del SO (C:) para crear espacio contiguo.
- Si la recuperación está antes de C:, considera moverla al final del disco (más sencillo) y crearla nueva allí.
- Aplica cambios y continúa con
reagentc /enable
.
Método con DiskPart (GPT/UEFI y MBR/BIOS)
Advertencia: crea una copia de seguridad y ejecútalo en ventana de mantenimiento. Cambios de particionamiento conllevan riesgo.
Escenario GPT/UEFI
diskpart
list disk
select disk 0
list volume
select volume C
shrink desired=1024 rem <-- libera 1 GB; ajusta según necesidad
create partition primary size=1024
format quick fs=ntfs label="Recovery"
set id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
gpt attributes=0x8000000000000001
assign letter=R
exit
La combinación de id
y gpt attributes
marca la partición como Recovery y la oculta/requiere. Ajusta la letra temporal (R:
) si está ocupada; al final puede retirarse.
Escenario MBR/BIOS
diskpart
select disk 0
select volume C
shrink desired=1024
create partition primary size=1024
format quick fs=ntfs label="Recovery"
set id=27
assign letter=R
exit
Volver a activar WinRE y fijar la ruta (si procede)
Normalmente reagentc /enable
detecta y utiliza la partición de recuperación. Si necesitas especificar manualmente la ruta de la imagen de WinRE:
md R:\Recovery\WindowsRE
copy C:\Windows\System32\Recovery\winre.wim R:\Recovery\WindowsRE\winre.wim
reagentc /setreimage /path R:\Recovery\WindowsRE /target C:\Windows
reagentc /enable
reagentc /info
Tras validar, puedes quitar la letra de la partición:
diskpart
select volume R
remove letter=R
exit
Alternativa con PowerShell (módulo Storage)
Para automatizar (y registrar) el ajuste, este ejemplo idempotente libera 1 GB de C:, crea una partición de recuperación de 1 GB al final y habilita WinRE. Ajusta tamaños según tus requisitos.
$ErrorActionPreference = 'Stop'
1) Desactiva WinRE
Start-Process cmd.exe '/c reagentc /disable' -Verb RunAs -Wait
2) Calcula tamaño y reduce C: (libera 1 GB)
\$oneGB = 1GB
Resize-Partition -DriveLetter C -Size ((Get-Partition -DriveLetter C).Size - \$oneGB)
3) Crea partición Recovery al final
\$disk = Get-Partition -DriveLetter C | Get-Disk
\$new = New-Partition -DiskNumber \$disk.Number -Size \$oneGB -AssignDriveLetter
Format-Volume -Partition \$new -FileSystem NTFS -NewFileSystemLabel 'Recovery' -Confirm:\$false
Establece tipo de partición Recovery (GPT) y atributos oculto/requerido si aplica
try {
\$gptId = 'de94bba4-06d1-4d40-a16a-bfd50179d6ac'
Set-Partition -PartitionNumber \$new\.PartitionNumber -DiskNumber \$disk.Number -GptType \$gptId -ErrorAction Stop
} catch {}
Prepara estructura y mueve winre.wim si necesitas forzar ruta
\$newLetter = (\$new | Get-Volume).DriveLetter
\$newRoot = '{0}:\Recovery\WindowsRE' -f \$newLetter
New-Item -ItemType Directory -Force -Path \$newRoot | Out-Null
Copy-Item 'C:\Windows\System32\Recovery\winre.wim' (Join-Path \$newRoot 'winre.wim') -Force
4) Configura ruta, habilita y muestra estado
Start-Process cmd.exe "/c reagentc /setreimage /path \$newRoot /target C:\Windows" -Verb RunAs -Wait
Start-Process cmd.exe '/c reagentc /enable' -Verb RunAs -Wait
Start-Process cmd.exe '/c reagentc /info' -Verb RunAs -Wait
Diagnóstico complementario y buenas prácticas
Evita colisiones de mantenimiento
- No lances DISM/SFC en paralelo con
reagentc
. - Comprueba que no haya instalaciones de roles/características pendientes en el Administrador del servidor.
- Si un antivirus/EDR interviene a bajo nivel, crea exclusiones temporales para la ruta de
winre.wim
y la partición de recuperación durante la operación.
Revisa registros cuando haya lentitud
- ReAgentC (si usas
/logpath
):C:\temp\reagent.log
(o la ruta que especifiques). - CBS (Component-Based Servicing):
C:\Windows\Logs\CBS\CBS.log
- DISM:
C:\Windows\Logs\DISM\dism.log
- Visor de eventos:
- Registros de Windows > Instalación (Setup)
- Aplicaciones y servicios > Microsoft > Windows > Servicing, WindowsUpdateClient, DISM
Comprobaciones rápidas de estado
:: Estado de WinRE
reagentc /info
\:: Desactivar/activar de forma limpia
reagentc /disable
reagentc /enable
\:: Habilitar logging para detectar esperas
reagentc /disable /logpath C:\temp\reagent.log
reagentc /enable /logpath C:\temp\reagent.log
Por qué tardó alrededor de 10 minutos
Cuando el sistema está aplicando paquetes, el instalador (TrustedInstaller) mantiene candados hasta terminar ciertas fases. reagentc
entra en espera bloqueante hasta conseguir acceso exclusivo a WinRE. Eso explica la aparente “congelación” sin errores; cuando finaliza el mantenimiento, el comando devuelve control y responde.
Errores frecuentes y cómo evitarlos
- Interrumpir mantenimiento en curso: matar TiWorker o TrustedInstaller puede dejar el almacén de componentes inconsistente. Mejor esperar o reiniciar.
- Reducir C: de más: verifica el free space recuperable antes de
shrink
. Usadefrag /L
oOptimize-Volume
si encuentras archivos inmóviles. - No marcar la partición como Recovery: en GPT, asigna el GUID correcto; en MBR, el tipo
0x27
. Sin eso, el sistema podría ignorar la partición. - Olvidar reactivar WinRE: tras ajustes, ejecuta
/enable
y valida con/info
. - Antivirus bloqueando archivos WIM: desactiva análisis en tiempo real solo durante la operación o crea exclusiones temporales.
Checklist de cierre (operación segura)
- No hay procesos de mantenimiento activos (TiWorker/TrustedInstaller inactivos).
reagentc /disable
se ejecutó sin esperas anómalas.- La partición de recuperación tiene ~1 GB y está correctamente marcada como Recovery.
reagentc /enable
completa sin errores con Windows RE status: Enabled.reagentc /info
muestra la ubicación de WinRE (dispositivo y ruta) y apunta a la partición recién ajustada.- Se verificó que PowerShell ISE abre correctamente (si lo usas).
FAQ
¿Puedo operar con DISM para “arreglar” antes de tocar WinRE?
Sí, pero no lo ejecutes mientras reagentc
esté en curso. Primero deja que finalice el mantenimiento pendiente; si sospechas corrupción en la imagen, entonces ejecuta:
dism /Online /Cleanup-Image /ScanHealth
dism /Online /Cleanup-Image /RestoreHealth
¿Es obligatorio tener la partición de recuperación?
Puedes alojar winre.wim
en el volumen del SO y fijar la ruta con /setreimage
, pero una partición Recovery dedicada resulta más robusta frente a cifrado, errores lógicos y operaciones offline.
¿Qué tamaño escoger?
Entre 750 MB y 1 GB suele cubrir actualizaciones de WinRE presentes y cercanas. Optar por ~1 GB da margen y evita repetir el procedimiento en el futuro.
Plantilla de automatización con espera segura
Este fragmento espera a que termine el mantenimiento antes de llamar a reagentc
, evitando falsas apariencias de “cuelgue”.
function Wait-ServicingQuiet {
param([int]$TimeoutSec = 900)
$sw = [Diagnostics.Stopwatch]::StartNew()
while ($sw.Elapsed.TotalSeconds -lt $TimeoutSec) {
$busy = (Get-Process -Name TrustedInstaller,TiWorker -ErrorAction SilentlyContinue) -ne $null
if (-not $busy) { return $true }
Start-Sleep -Seconds 5
}
return $false
}
if (Wait-ServicingQuiet -TimeoutSec 900) {
Write-Host 'Servicing inactivo. Ejecutando reagentc...' -ForegroundColor Green
cmd /c 'reagentc /disable && reagentc /enable && reagentc /info'
} else {
Write-Warning 'Tiempo de espera agotado. Reinicia y reintenta en ventana de mantenimiento.'
}
Conclusión
Si reagentc
parece “no responder” en Windows Server 2022, no es un cuelgue: está esperando a que el sistema libere el acceso exclusivo a WinRE. Confirma el mantenimiento en curso, deja que termine o reinicia, y luego aplica el ciclo disable → (ajustar partición) → enable → info. Con una partición de recuperación de ~1 GB y WinRE correctamente registrado, las actualizaciones futuras fluirán sin bloqueos ni esperas innecesarias.
Comandos de referencia rápida
:: Estado y ciclo básico
reagentc /info
reagentc /disable
reagentc /enable
\:: Logging útil
reagentc /disable /logpath C:\temp\reagent.log
reagentc /enable /logpath C:\temp\reagent.log
\:: Comprobaciones de mantenimiento
sc query TrustedInstaller
tasklist /FI "IMAGENAME eq TiWorker.exe"
\:: Ajuste de partición (GPT)
diskpart
select disk 0
select volume C
shrink desired=1024
create partition primary size=1024
format quick fs=ntfs label="Recovery"
set id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
gpt attributes=0x8000000000000001
assign letter=R
exit
Resultado final del caso: tras esperar a que concluyera la operación de mantenimiento, reagentc
volvió a responder. La solución quedó estable al completar las tareas pendientes de Windows Update, reiniciar si era necesario y aplicar el ciclo disable → (ajustar partición si procede) → enable → info con una partición de recuperación dimensionada correctamente.