2015-09-14 20:06:52 +0000 2015-09-14 20:06:52 +0000
245
245

Evitar que los temporizadores despierten el escritorio de Windows 10

¿Cómo se puede evitar que un ordenador de sobremesa con Windows 10 se despierte del estado de suspensión/hibernación sin la intervención del usuario?

Para muchos usuarios esto no será un problema pero, si duermes en la misma habitación que tu PC, entonces tener tu máquina despierta a las 3:30AM para descargar actualizaciones es irritante.

Respuestas (3)

377
377
377
2015-09-14 20:39:07 +0000

Resumen

Hay varias cosas que pueden afectar a esto. Soy consciente de que hay posts por todo este sitio que detallan varias formas diferentes de abordar el problema; este post pretende consolidarlos y añadir mi propia visión del problema como alguien afectado por él.

La solución descrita en el paso 2 también se puede utilizar para evitar que Windows 10 reinicie la máquina después de instalar las actualizaciones de Windows.

Esta solución también funciona para la actualización de otoño (1709). Sin embargo, tendrá que deshabilitar de nuevo la tarea “Reiniciar” y volver a configurar los permisos de seguridad, ya que el proceso de actualización la sustituye.

Paso 1: Desactivar los temporizadores de activación para todos los perfiles de energía

Los perezosos tecno-bloggers le harían creer que este es el final de su búsqueda. Si bien es cierto que este paso eliminará algunos apagados errantes, hay una serie de ajustes y configuraciones, sobre todo en Windows 10, que no respetan este ajuste independientemente de la intervención del usuario. Ve al Panel de control → Opciones de energía. Desde aquí, escoge cualquier perfil de energía que esté en primer lugar en la lista y desactiva ‘Temporizadores de despertador’. Trabaje a través de todos los perfiles.

Gracias al usuario de StackExchange olee22 por la imagen.

En Windows 10, se recomienda encarecidamente fijar esta configuración para todos los perfiles de energía , no sólo para el que ha elegido utilizar. Varias facultades de Windows utilizarán diferentes perfiles; esto mejora sus posibilidades de no ser despertado.

Paso 2: Desactivar la tarea programada reboot rebelde

Nota: He creado un script de PowerShell que se puede utilizar para evitar que su sistema Windows 10 se reinicie. Puedes encontrarlo aquí: github.com/seagull/disable-automaticrestarts .

La carpeta de tareas programadas de UpdateOrchestrator de Windows 10 contiene una tarea llamada “reboot”. Esta tarea despertará el ordenador para instalar las actualizaciones, independientemente de si hay alguna disponible o no. No basta con quitarle el permiso para despertar el ordenador; Windows se limitará a editarla para volver a darle permiso después de salir del Programador de Tareas.

Desde su Panel de Control, entre en Herramientas Administrativas, y luego vea su Programador de Tareas.

Esta es la tarea que quiere - en la Biblioteca del Programador de Tareas → Microsoft → Windows → UpdateOrchestrator. Las cosas más importantes que quieres hacer son:

A partir de aquí, tendrá que alterar los permisos de la tarea para que Windows no pueda molestarla. La tarea se encuentra en C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator. Se llama Reboot sin extensión de archivo. Haz clic con el botón derecho del ratón, entra en propiedades y hazte propietario . Por último, configúrala para que aparezca lo siguiente:

Aquí el archivo se muestra con permisos de sólo lectura para SYSTEM. Haz que ninguna cuenta tenga acceso de escritura, ni siquiera la tuya (siempre puedes cambiar los permisos más tarde si lo necesitas). Asegúrese también de desactivar cualquier permiso heredado para el archivo desde el botón Avanzado en esta pantalla, para anular cualquier permiso existente en la carpeta raíz. Esto evitará al 100% que Windows se meta con sus cambios después de haberlos implementado.

Una vez que se haya establecido esto, no tendrá que preocuparse más por esa tarea programada.

Si no tiene los permisos para alterar las tareas de UpdateOrchestrator

Alterar las tareas de UpdateOrchestrator ahora requiere permisos de SYSTEM, ni de administrator ni de TrustedInstaller. Una de las formas de sortear esto es mediante :

  1. Instalar el propio PsTools de Microsoft.
  2. Abriendo el Símbolo del sistema como administrador y cd en su carpeta local PsTools.
  3. Ejecutar: psexec.exe -i -s %windir%\system32\mmc.exe /s taskschd.msc
  4. Ir al UpdateOrchestrator y deshabilitar la(s) tarea(s) del Reboot, como se mencionó anteriormente.

Nota para Windows 1709 (Fall Creators’ Update)

El proceso de instalación de Windows cambia los permisos de los archivos, así que asegúrate de volver a leer esta guía después de la actualización.

He oído informes de que se hace una nueva tarea llamada AC Power Install que requiere que se le apliquen los mismos pasos, pero no he visto que se produzca esta tarea en mi propio dispositivo después de instalar la actualización 16299.192 (parche Meltdown 2018-01) por lo que no puedo aconsejar con absoluta certeza. Los mismos pasos realizados anteriormente deberían funcionar en cualquier tarea que se haya introducido.

Paso 3: Comprobar los temporizadores de activación en PowerShell

Has desactivado la funcionalidad de los temporizadores de activación, pero Windows 10 tiene la costumbre de no respetar esa configuración, así que para estar seguros, vamos a ejecutar un comando de PowerShell para eliminar todas las tareas que puedan, factiblemente, despertar tu PC. Abre un símbolo del sistema de PowerShell administrativo (Inicio, escribe ‘Powershell’, Ctrl+Mayús+Enter) y coloca este comando en la ventana:

Get-ScheduledTask | where {$_.settings.waketorun}

Revisa todas las tareas que enumera y quítales el permiso para despertar tu ordenador. No deberías tener que preocuparte por los permisos como hicimos con Reboot; ese fue un caso aislado.

Paso 4: Compruebe qué hardware puede despertar su PC

Muchos USB El hardware, cuando se activa, tiene la capacidad de despertar el PC (los teclados suelen hacerlo cuando se pulsan las teclas, por ejemplo); el wake-on-LAN suele ser también un problema en este escenario. Para los no iniciados, una característica común y útil del hardware moderno se llama “Wake on LAN”. Si tu dispositivo está conectado a una red local mediante un cable Ethernet (no funciona con Wi-Fi), puedes enviar comunicaciones que despertarán tu PC cuando las recibas. Es una función que utilizo a menudo, pero hay que ajustarla, ya que su comportamiento por defecto es demasiado entusiasta.

Introduzca el siguiente comando en un símbolo del sistema administrativo:

powercfg -devicequery wake_armed

A partir de aquí, busque los dispositivos en el Administrador de dispositivos (Panel de control) y, en la pestaña Administración de energía, elimine su capacidad de despertar el ordenador. Si tiene tarjetas de interfaz de red para las que desea mantener la función Wake-on-LAN, active Sólo despertar este dispositivo si recibe un paquete mágico, en lugar de despertarlo por todo el tráfico enviado.

Paso 5: Compruebe la directiva de grupo para estar completamente seguro

Haga clic con el botón derecho del ratón en el menú Inicio y seleccione Ejecutar. Escriba GPEdit.MSC. Busque el siguiente ajuste en Configuración del equipo → Plantillas administrativas → Componentes de Windows → Actualizaciones de Windows → Habilitar la administración de energía de Windows Update para despertar automáticamente el sistema para instalar las actualizaciones programadas. Haga doble clic en él y póngalo en Desactivado.

Paso 6: Desactivar el despertar de la máquina para el mantenimiento automático

Alguien en Microsoft tiene sentido del humor para esto. Si tu PC te despierta por la noche, lo que más quieres oír es el crujido del disco duro mientras realiza una desfragmentación nocturna. Desactiva esta función buscando la sección de Seguridad y Mantenimiento del Panel de Control. Desde allí, expanda Mantenimiento y busque el enlace a Cambiar la configuración de mantenimiento.

Ponga la hora a algo más sociable (las 7PM está bien) y desactive la capacidad de la máquina de despertarse a sí misma para la tarea.

26
26
26
2016-04-20 22:10:26 +0000

Ahora utilizo este script para Impedir que los despertadores despierten el escritorio de Windows 10:

# disable wake for enabled scheduled tasks that are allowed to wake
Get-ScheduledTask |
?{ $_.Settings.WakeToRun -eq $true -and $_.State -ne 'Disabled' } |
%{
    write-host $_
    $_.Settings.WakeToRun = $false;
    Set-ScheduledTask $_
}

# disable wake for devices that are allowed to wake (list of wake capable devices: powercfg -devicequery wake_from_any)
powercfg -devicequery wake_armed |
%{
    write-host $_
    if ($_ -notmatch '^(NONE)?$')
    { powercfg -devicedisablewake $_ }
}

# disable wake timers for all power schemes
powercfg -list | Select-String 'GUID' |
%{
    write-host $_
    $guid = $_ -replace '^.*:\s+(\S+?)\s+.*$', '$1'
    powercfg -setdcvalueindex $guid SUB_SLEEP RTCWAKE 0
    powercfg -setacvalueindex $guid SUB_SLEEP RTCWAKE 0
}

# disable wake for automatic updates and for automatic maintenance
'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\AUPowerManagement', 
'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenance\WakeUp' |
%{
    write-host $_
    $key = split-path $_
    $name = split-path $_ -leaf
    $type = 'DWORD'
    $value = 0
    if (!(Test-Path $key))
    { New-Item -Path $key -Force | Out-Null }
    if ((Get-ItemProperty $key $name 2>$null).$name -ne $value)
    { Set-ItemProperty $key $name $value -type $type }
}

Como puedes ver, aborda más o menos todos los pasos mencionados en esta respuesta, excepto los permisos del archivo de tareas programadas. Sin embargo, ya que tengo la intención de ejecutar silenciosamente este script cada vez que se desbloquee o se inicie la sesión, espero que esto no sea un problema en absoluto.

11
11
11
2016-11-18 02:33:02 +0000

Encontré la otra respuesta increíblemente útil, y sólo comentaría si pudiera, pero quería contribuir con una pieza de software que escribí rápidamente para ayudar con los pasos 3 y 4 que se encuentran aquí: https://github.com/Omniru/System-Wake-Manager/wiki/Home-&-Download

Espero que sea de utilidad para algunos.

Puede que veas esto y tengas que hacer clic en “Más información” y luego en “Ejecutar de todos modos” (si no estás seguro de ello, no dudes en revisar el código fuente, está en github después de todo):