Cómo programar el apagado automático de una PC con PowerShell: riesgos y cuidados

Apagado automático con PowerShell a las 19:10: PC de escritorio y advertencia sobre riesgos y cuidados, con colores Solutecstore

¿Quieres que tu computadora se apague todos los días a las 19:10? PowerShell permite crear una tarea que ejecute el apagado de Windows a esa hora. En esta guía de Solutecstore aprenderás a registrarla, comprobarla y desactivarla.

1. Antes de programar el apagado

  • Guarda tus documentos y comprueba que no haya respaldos, copias de archivos o instalaciones en ejecución.
  • Elige una hora fuera del uso habitual del equipo y de las ventanas de mantenimiento.
  • Abre Windows PowerShell como administrador. En Windows 10, Windows 11, Windows Server 2022 y Windows Server 2025 puedes usar los cmdlets del módulo ScheduledTasks. Si utilizas PowerShell 7, comprueba que el módulo esté disponible.
  • Revisa la fecha, hora y zona horaria de Windows. Este ejemplo usa la hora local del equipo.
  • En un servidor, coordina el horario con quienes usan sesiones remotas, carpetas compartidas o aplicaciones de la empresa.

2. Código: apagado forzado diario a las 19:10

Copia este bloque completo en la consola del equipo que deseas programar. Los acentos graves (`) al final de varias líneas continúan el comando: no añadas espacios después de ellos.

$Nombre = 'Apagado forzado diario'

$Accion = New-ScheduledTaskAction `
    -Execute "$env:SystemRoot\System32\shutdown.exe" `
    -Argument '/s /f /t 0'

$Horario = New-ScheduledTaskTrigger -Daily -At '19:10'

$Usuario = New-ScheduledTaskPrincipal `
    -UserId 'SYSTEM' `
    -LogonType ServiceAccount `
    -RunLevel Highest

Register-ScheduledTask `
    -TaskName $Nombre `
    -Action $Accion `
    -Trigger $Horario `
    -Principal $Usuario `
    -Description 'Apaga el equipo diariamente y fuerza el cierre de las aplicaciones.' `
    -Force

Get-ScheduledTaskInfo -TaskName $Nombre |
    Select-Object NextRunTime

Registrar la tarea no ejecuta el apagado en ese momento. Sin embargo, si las 19:10 están próximas, puede activarse ese mismo día. Comprueba NextRunTime antes de dejarla habilitada.

3. Qué hace cada parte

  • $Nombre: identifica la tarea como “Apagado forzado diario”.
  • New-ScheduledTaskAction: indica qué ejecutable abrir y sus argumentos.
  • /s: solicita apagar Windows; /f: fuerza el cierre de aplicaciones; /t 0: no deja un tiempo de espera para cancelar.
  • -Daily -At '19:10': establece una ejecución diaria a las 7:10 p. m. Cambia esa hora si lo necesitas.
  • SYSTEM y Highest: utilizan la cuenta del sistema con privilegios elevados.
  • Register-ScheduledTask -Force: registra la tarea sin pedir confirmación; si ya existe una tarea con ese nombre, puede sustituir su definición. Revisa las tareas existentes antes.
  • Get-ScheduledTaskInfo: consulta la siguiente ejecución prevista.

4. Riesgos y cuidados

Un apagado solicitado a Windows no equivale a desconectar la electricidad. Aun así, forzar aplicaciones puede cortar operaciones que necesitan terminar de forma ordenada.

  • Trabajo sin guardar: documentos, hojas de cálculo y proyectos pueden perder los cambios recientes.
  • Operaciones en curso: una copia, sincronización, respaldo o instalación puede quedar incompleta. Verifica después su resultado; no asumas que terminó.
  • Archivos y bases de datos: una aplicación que no finaliza correctamente sus escrituras puede necesitar recuperación o reparación.
  • Servicios del servidor: el apagado desconecta usuarios y deja indisponibles los recursos alojados en esa máquina.

Con las actualizaciones, el límite es claro: este ejemplo no consulta Windows Update ni solicita de forma explícita “actualizar y apagar”. Windows puede gestionar fases de una actualización durante el cierre, pero no debes interpretar el script como una garantía de que todo habrá terminado antes. Para equipos que están actualizándose, pospón o desactiva la tarea y utiliza el flujo de mantenimiento de Windows.

5. Cómo comprobar la tarea sin apagar la PC

Get-ScheduledTask -TaskName 'Apagado forzado diario' |
    Select-Object TaskName, State

Get-ScheduledTaskInfo -TaskName 'Apagado forzado diario' |
    Select-Object NextRunTime, LastRunTime, LastTaskResult

También puedes buscarla en la Biblioteca del Programador de tareas. “Ready” o “Lista” indica que está preparada, no que ya se haya ejecutado correctamente. No pulses “Ejecutar” para comprobarla: iniciaría el apagado. El código no añade ajustes para despertar el equipo ni recuperar horarios perdidos; revisa las condiciones de energía y suspensión, especialmente en laptops.

6. Desactivar y volver a activar la programación

Antes de instalar actualizaciones o realizar un trabajo largo, puedes deshabilitarla. Ejecuta los comandos por separado, según lo que necesites:

# Desactivar
Disable-ScheduledTask -TaskName 'Apagado forzado diario'

# Volver a activar cuando termine el mantenimiento
Enable-ScheduledTask -TaskName 'Apagado forzado diario'

Si quieres eliminarla definitivamente:

Unregister-ScheduledTask -TaskName 'Apagado forzado diario' -Confirm:$true

7. ¿Existe una alternativa sin cierre forzado?

Puedes sustituir la línea de argumentos por esta variante:

-Argument '/s /t 0'

Así no solicitas el cierre forzado con /f; una aplicación puede bloquear el apagado. Tampoco añade una comprobación de actualizaciones. Evita presentar /s /t 60 como una solución sin fuerza: Microsoft indica que un tiempo mayor que cero implica /f. El comando shutdown /a solo cancela durante una cuenta regresiva; con /t 0 no hay un margen útil.

Documentación oficial

¿Quieres profundizar? Conoce el Manual de PowerShell de Solutecstore, con explicaciones para diagnosticar, reparar y respaldar.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Main Menu