Automatizar el Plan de Energía "Alto rendimiento" en PowerShell (multilenguaje y con fallback)

Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

En muchos entornos profesionales y técnicos, especialmente en estaciones de trabajo de alto rendimiento o servidores, es fundamental evitar configuraciones de ahorro energético que puedan perjudicar el rendimiento del sistema. En este artículo te enseño cómo automatizar la activación del plan de energía "Alto rendimiento" con PowerShell, sin importar si el sistema está en español o inglés, y asegurando que se aplica aunque el plan no esté listado.

Fase 1: Listar los planes de energía en CMD o PowerShell

Para ver los planes de energía disponibles en el sistema:

En CMD:

powercfg /l

En PowerShell:

powercfg /l

La salida muestra todos los planes con su GUID. Ejemplo:

GUID del esquema: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c  (Alto rendimiento)

Fase 2: Filtrar solo el plan 'Alto rendimiento' / 'High performance'

En CMD:

powercfg /l | findstr /i "Alto rendimiento"

O, en un sistema en inglés:

powercfg /l | findstr /i "High performance"

Fase 3: Extraer solo el GUID del plan (en CMD)

Este comando extrae el GUID directamente en CMD:

for /f "tokens=1-7" %%a in ('powercfg /l ^| findstr /i "Alto rendimiento"') do echo %%b

En uso interactivo (no .bat), recuerda usar solo un %:

for /f "tokens=1-7" %a in ('powercfg /l ^| findstr /i "Alto rendimiento"') do echo %b

Fase 4: Extraer el GUID en PowerShell

Inicialmente con -split (no recomendado en casos multilingües):

$highPerfPlan = powercfg /l | Where-Object { $_ -match "Alto rendimiento" }
$guid = ($highPerfPlan -split '\s+')[3]

Esto funciona si el formato es siempre el mismo, pero no es robusto en sistemas modificados o con otro idioma.

Fase 5: Versión mejorada con expresión regular y compatibilidad multilenguaje

$highPerfPlan = powercfg /l | Where-Object {
$_ -match "Alto rendimiento" -or $_ -match "High performance"
}

if ($highPerfPlan -match "([a-f0-9\-]{36})") {
$guid = $matches[1]
powercfg /setactive $guid
} else {
Write-Host "Plan no encontrado"
exit 1
}

Fase 6: Fallback con GUID por defecto si no se encuentra el plan

Para cubrir casos donde no aparece en la lista, se puede aplicar el GUID conocido del plan “Alto rendimiento”:

if ($highPerfPlan -match "([a-f0-9\-]{36})") {
$guid = $matches[1]
} else {
$guid = "8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c"
}

Fase 7: Comandos para configurar energía

Estos comandos desactivan suspensión, apagado de discos e hibernación:

powercfg /change standby-timeout-ac 0
powercfg /change standby-timeout-dc 0

powercfg /change disk-timeout-ac 0
powercfg /change disk-timeout-dc 0

powercfg /hibernate off

Script PowerShell final completo

Este script aplica todo lo anterior, completamente funcional, robusto y listo para usarse en entornos multilenguaje:

# Buscar línea del plan "Alto rendimiento" o "High performance"
$highPerfPlan = powercfg /l | Where-Object {
$_ -match "Alto rendimiento" -or $_ -match "High performance"
}

# Si se encontró el plan, extraer el GUID; si no, usar GUID por defecto
if ($highPerfPlan -match "([a-f0-9\-]{36})") {
$guid = $matches[1]
} else {
$guid = "8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c"
}

# Activar el plan
powercfg /setactive $guid

# Desactivar suspensión del sistema
powercfg /change standby-timeout-ac 0
powercfg /change standby-timeout-dc 0

# Desactivar apagado de discos duros
powercfg /change disk-timeout-ac 0
powercfg /change disk-timeout-dc 0

# Desactivar hibernación
powercfg /hibernate off

¿Cómo ejecutarlo?

  1. Guarda el script como energia.ps1.
  2. Abre PowerShell como administrador.
  3. Ejecuta:

    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass .\energia.ps1

Extensiones opcionales

  • Crear el plan si no existe.
  • Guardar un log con las acciones.
  • Aplicar vía GPO, scripts de inicio o imagen de sistema.
Binario 0
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.