Windows28 de mayo de 2026 7 vistas

Impedir que un VPS Windows entre en modo de suspensión en 2026

Impedir que un VPS Windows entre en modo de suspensión en 2026

Se conecta a su VPS Windows por RDP, inicia un proceso, cierra la sesión… y unos minutos después, su servidor ya no responde, su script se ha detenido, o la conexión de escritorio remoto se niega a abrirse. El culpable es casi siempre el mismo: la suspensión de Windows.

Esta guía explica por qué un VPS Windows entra en suspensión (aunque no tendría sentido en un servidor remoto), y luego ofrece tres métodos complementarios para desactivarla de forma definitiva: interfaz gráfica, script de PowerShell y registro de Windows. Al final del artículo, su VPS permanecerá activo 24/7, incluso con la sesión RDP cerrada.

Solución rápida en 30 segundos:

Abra PowerShell como administrador en su VPS y pegue:

powercfg /change standby-timeout-ac 0
powercfg /change monitor-timeout-ac 0
powercfg /change hibernate-timeout-ac 0
powercfg /hibernate off
powercfg /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c

Luego reinicie. Detalles, verificación y solución de problemas a continuación.


Por qué un VPS Windows se pone en suspensión (aunque no debería)

Un VPS es una máquina virtual que funciona en un hipervisor (KVM, VMware, Hyper-V). A diferencia de un PC físico, no tiene pantalla, no tiene teclado, no tiene batería. La suspensión no tiene ningún sentido funcional… pero Windows no lo sabe.

Cuando instala Windows Server (o peor, Windows 10/11 en un VPS, lo que algunos hacen), el sistema aplica su plan de energía predeterminado, diseñado para un puesto de trabajo. Consecuencias:

  1. Después de 15-30 minutos de inactividad de la sesión RDP, Windows considera que no hay "nadie" y apaga la pantalla virtual.
  2. Después de ~1h, entra en suspensión (Sleep) o hibernación (Hibernate) → el sistema operativo suspende los hilos, los servicios de red se ralentizan, algunos procesos de usuario se congelan.
  3. El servicio de Escritorio Remoto (TermService) aplica sus propios timeouts (MaxIdleTime, MaxDisconnectionTime) que cierran la sesión tras inactividad, liberando el escritorio.

En un VPS, el comportamiento observado es generalmente:

  • ✗ El servidor siempre responde al ping (el núcleo de red permanece activo).
  • RDP se niega a conectar o muestra una pantalla negra.
  • Sus scripts/servicios programados se interrumpen.
  • ✗ Las aplicaciones GUI (bots, navegadores automatizados, MetaTrader, OBS, etc.) se ponen en pausa.

Es por esta razón que toda implementación en un VPS Windows comienza por desactivar la suspensión. Veamos cómo, de manera limpia y duradera.


Requisitos previos

  • Un VPS Windows activo (Windows Server 2019, 2022, 2025 o Windows 10/11), por ejemplo, un VPS Windows OuiHeberg.
  • Un acceso RDP al servidor con una cuenta de administrador.
  • 5 a 10 minutos.

Nota: Todas las manipulaciones deben hacerse desde una sesión RDP administrador. Si utiliza una cuenta estándar, algunos ajustes estarán deshabilitados.


Método 1 - Interfaz gráfica (recomendado para principiantes)

Paso 1.1 - Abrir las opciones de energía

  1. Presione Windows + R para abrir la ventana Ejecutar.
  2. Escriba powercfg.cpl y presione Enter.
  3. La ventana Opciones de energía se abrirá.

Paso 1.2 - Elegir el modo "Alto rendimiento"

En la lista de modos, seleccione Alto rendimiento.

Si no aparece (caso frecuente en Windows Server con plan de energía reducido), recréelo a través de PowerShell admin:

powercfg -duplicatescheme 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
powercfg /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c

Paso 1.3 - Desactivar pantalla y suspensión

  1. Haga clic en Modificar la configuración del plan a la derecha del plan activo.
  2. Configure Apagar la pantalla en Nunca.
  3. Configure Poner el equipo en suspensión en Nunca.
  4. Haga clic en Modificar la configuración de energía avanzada.

Paso 1.4 - Configuración avanzada (la más importante)

En la ventana avanzada, configure:

SecciónParámetroValor
Disco duroApagar el disco duro despuésNunca (0 min)
SuspensiónPoner en suspensión despuésNunca
SuspensiónPermitir suspensión híbridaDesactivado
SuspensiónPoner en hibernación despuésNunca
SuspensiónPermitir temporizadores de despertarDesactivar
USBConfiguración de suspensión selectiva USBDesactivado
Botones y tapaAcción al cerrar la tapaNo hacer nada

Haga clic en Aplicar y luego en OK.

Paso 1.5 - Desactivar el inicio rápido

  1. En Opciones de energía, haga clic a la izquierda en Elegir la acción de los botones de encendido.
  2. Haga clic en Modificar la configuración que actualmente no está disponible.
  3. Desmarque Activar inicio rápido.

Método 2 - Script de PowerShell (recomendado para administradores)

Es el método más rápido y confiable. Un solo bloque de PowerShell reemplaza todo el procedimiento gráfico y garantiza la misma configuración en todos sus VPS.

Abra PowerShell como administrador, copie y pegue todo el script a continuación:

# === OuiHeberg — VPS Windows: desactivación completa de la suspensión ===

# 1. Plan de energía "Alto rendimiento"
$highPerf = "8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c"
powercfg -duplicatescheme $highPerf 2>$null
powercfg /setactive $highPerf

# 2. Desactivar todos los timeouts (sector AC, el único válido en VPS)
powercfg /change standby-timeout-ac 0
powercfg /change monitor-timeout-ac 0
powercfg /change disk-timeout-ac 0
powercfg /change hibernate-timeout-ac 0

# 3. Desactivar la hibernación (también libera hiberfil.sys = varios GB)
powercfg /hibernate off

# 4. Desactivar los temporizadores de despertar
powercfg /setacvalueindex SCHEME_CURRENT SUB_SLEEP RTCWAKE 0
powercfg /setactive SCHEME_CURRENT

# 5. Desactivar el protector de pantalla para todos los usuarios
reg add "HKCU\Control Panel\Desktop" /v ScreenSaveActive /t REG_SZ /d 0 /f
reg add "HKCU\Control Panel\Desktop" /v ScreenSaveTimeOut /t REG_SZ /d 0 /f

# 6. Desactivar los timeouts RDP (la sesión permanece abierta indefinidamente)
$rdp = "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp"
Set-ItemProperty -Path $rdp -Name "MaxIdleTime"         -Value 0 -Type DWord
Set-ItemProperty -Path $rdp -Name "MaxDisconnectionTime" -Value 0 -Type DWord
Set-ItemProperty -Path $rdp -Name "MaxConnectionTime"   -Value 0 -Type DWord

# 7. Desactivar el inicio rápido (HiberbootEnabled)
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v HiberbootEnabled /t REG_DWORD /d 0 /f

Write-Host "`n✓ Configuración aplicada. Reinicio recomendado." -ForegroundColor Green

Guarde este script en C:\Scripts\disable-sleep.ps1 para poder reaplicarlo en cualquier nuevo VPS.


Método 3 - Editor del registro (para casos específicos)

Si desea un control granular o resolver un conflicto de GPO, edite directamente el registro.

Desactivar los timeouts RDP

Windows + Rregedit → navegar hacia:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

Crear/modificar estos tres valores DWORD (32 bits):

NombreTipoValorEfecto
MaxIdleTimeDWORD0Sesión nunca cerrada por inactividad
MaxDisconnectionTimeDWORD0Sesión desconectada permanece indefinidamente
MaxConnectionTimeDWORD0Sin duración máxima de conexión

Desactivar el inicio rápido a través del registro

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Power

Establecer HiberbootEnabled (DWORD) en 0.


Verificación: ¿su VPS está bien configurado?

Después de los cambios, reinicie el VPS (shutdown /r /t 0), vuelva a conectarse y luego ejecute este script de verificación en PowerShell admin:

# === Verificación de configuración de suspensión VPS ===

Write-Host "`n--- Plan de energía activo ---" -ForegroundColor Cyan
powercfg /getactivescheme

Write-Host "`n--- Timeouts ---" -ForegroundColor Cyan
powercfg /query SCHEME_CURRENT SUB_SLEEP STANDBYIDLE | Select-String "Index"
powercfg /query SCHEME_CURRENT SUB_VIDEO VIDEOIDLE  | Select-String "Index"

Write-Host "`n--- Hibernación ---" -ForegroundColor Cyan
powercfg /availablesleepstates

Write-Host "`n--- Timeouts RDP ---" -ForegroundColor Cyan
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" |
    Select-Object MaxIdleTime, MaxDisconnectionTime, MaxConnectionTime

Debería ver:

  • Plan activo = Alto rendimiento (GUID 8c5e7fda-…)
  • Todos los Índices de timeouts en 0x00000000
  • La hibernación no ha sido habilitada
  • MaxIdleTime, MaxDisconnectionTime, MaxConnectionTime en 0

Si alguno de estos puntos no es conforme, consulte la sección de solución de problemas.


Solución de problemas - El VPS sigue "congelándose"

Si a pesar de la configuración anterior el VPS sigue siendo inaccesible después de unas horas, el problema probablemente proviene de otro lugar que no sea la suspensión. Aquí están las causas más frecuentes en orden de probabilidad.

1. Windows Update fuerza un reinicio

services.msc → encontrar Windows Update → verificar que el reinicio automático no esté programado durante sus horas críticas. Para posponer:

reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v NoAutoRebootWithLoggedOnUsers /t REG_DWORD /d 1 /f

2. Tareas programadas de apagado/reinicio

taskschd.mscBiblioteca del Programador → verificar Microsoft\Windows\UpdateOrchestrator y Microsoft\Windows\Maintenance. Desactive Reboot y RegularMaintenance si gestiona las actualizaciones manualmente.

3. Tarjeta de red autorizada a "ahorrar energía"

devmgmt.mscAdaptadores de red → clic derecho en la interfaz → Propiedades → pestaña Administración de energíadesmarque "Permitir que el ordenador apague este dispositivo para ahorrar energía".

4. Política de grupo (GPO) que reimpone los timeouts

Si su VPS está unido a un dominio o si ha aplicado GPO Política de Grupo Local, abra gpedit.msc y verifique:

Configuración del ordenador → Plantillas administrativas → Componentes de Windows → Servicios de Escritorio Remoto → Host de sesión de Escritorio Remoto → Límites de conexión

Desactive (o ponga en No configurado) todas las políticas relacionadas con los límites de sesión. Luego ejecute gpupdate /force.

5. Servicio TermService reiniciado por actualizaciones

Reaplicar el script de PowerShell método 2 restablece las claves RDP después de cada actualización importante de Windows. Prográmelo como tarea programada mensual si es necesario.


Para ir más allá: mantener la sesión RDP activa sin cerrarla

Aún con la sesión activa, algunos servicios (antivirus, telemetría) pueden bajar la prioridad de los procesos de usuario cuando la sesión está "desconectada pero abierta". Dos trucos:

Mantener la sesión RDP "viva" del lado del cliente

En su PC local (no en el VPS), cree un acceso directo .rdp con estas opciones:

keepalive interval:i:60
disconnection sound:i:0

Esto envía un ping RDP cada 60 segundos y evita que el router/NAT corte la conexión.

Evitar el bloqueo automático de pantalla

Aún en el VPS, como administrador:

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v InactivityTimeoutSecs /t REG_DWORD /d 0 /f
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Personalization" /v NoLockScreen /t REG_DWORD /d 1 /f

Lista de verificación final - 8 verificaciones antes de cerrar la sesión

  • Plan de energía = Alto rendimiento
  • standby-timeout-ac = 0
  • monitor-timeout-ac = 0
  • hibernate = off
  • MaxIdleTime (registro RDP) = 0
  • Inicio rápido desactivado
  • Tarjeta de red: "ahorrar energía" desmarcado
  • VPS reiniciado al menos una vez después de la configuración

Si las 8 casillas están marcadas, su VPS Windows permanecerá activo 24/7.


FAQ - Suspensión de un VPS Windows

¿Por qué un VPS Windows se pone en suspensión si no tiene pantalla?

Porque Windows aplica su plan de energía predeterminado (diseñado para un PC) sin tener en cuenta que la máquina es virtual. Los timeouts de pantalla y de suspensión se aplican incluso en un VPS sin dispositivo físico, y el servicio de Escritorio Remoto cierra la sesión tras inactividad.

¿Cuál es el comando más rápido para evitar la suspensión de un VPS Windows?

Una sola línea en PowerShell como administrador: powercfg /change standby-timeout-ac 0. Para una protección completa, agregue powercfg /change monitor-timeout-ac 0, powercfg /hibernate off, y desactive los timeouts RDP en el registro.

Mi VPS Windows ya no responde después de unas horas, ¿es la suspensión?

Probablemente, pero no solo eso. Verifique en este orden: (1) plan de energía, (2) timeouts RDP MaxIdleTime, (3) tareas programadas de Windows Update, (4) tarjeta de red autorizada a apagarse. El script de verificación de este artículo diagnostica las 4 causas en 5 segundos.

¿Es necesario desactivar la hibernación en un VPS?

Sí. La hibernación es innecesaria en un VPS (sin batería, sin RAM que guardar), y el archivo hiberfil.sys ocupa el equivalente de la RAM del servidor en el disco. El comando powercfg /hibernate off desactiva el mecanismo y libera ese espacio de inmediato.

¿Las modificaciones sobreviven a un reinicio?

Sí. Los planes de energía, el registro RDP y los parámetros de inicio rápido son persistentes. La única excepción: una actualización importante de Windows Server puede restablecer algunas claves del servicio de Escritorio Remoto. Reaplique el script de PowerShell después de cada actualización Feature Update.

¿Cuál es la diferencia entre standby-timeout-ac y standby-timeout-dc?

ac = corriente alterna (enchufado), dc = batería. Un VPS siempre se considera "enchufado" — solo ac cuenta. Modificarlo es suficiente; dc puede ser ignorado.

¿Este procedimiento funciona en Windows Server 2025?

Sí. Todos los comandos powercfg y claves de registro listadas son idénticas en Windows Server 2019, 2022 y 2025, así como en Windows 10 y 11. Solo la interfaz gráfica ha cambiado ligeramente en Server 2025 (Configuración → Sistema → Energía en lugar del Panel de control).


Conclusión

Desactivar la suspensión de un VPS Windows requiere tres acciones complementarias: plan de energía Alto rendimiento, timeouts de powercfg a cero, claves RDP del registro a cero. El script de PowerShell del método 2 realiza las tres en 5 segundos y sigue siendo válido en todos los Windows Server modernos.

Una vez aplicados estos ajustes, su VPS permanecerá activo 24/7, sus scripts funcionarán sin interrupción, y su sesión RDP se reanudará instantáneamente incluso después de varios días.

¿Necesita un VPS Windows confiable para alojar un bot, un servidor de aplicaciones o un entorno de desarrollo? Descubra los VPS Windows OuiHeberg con Windows Server 2025 preinstalado, acceso RDP inmediato, SSD NVMe y soporte 7 días a la semana basado en Francia.