¿Cómo se puede evitar que una computadora de escritorio 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, es irritante que tu máquina se despierte a las 3:30 a. m. para descargar actualizaciones.
Respuesta1
Resumen
Abril de 2022: he creado un nuevo script de PowerShell que deshabilitará las tareas programadas de Windows para activar un dispositivo automáticamente. Úselo junto con las otras partes de esta guía. Descárgalo en: https://github.com/seagull/disable-scheduledWaking
Hay una serie de cosas que pueden afectar esto. Soy consciente de que hay publicaciones en todo este sitio que detallan varias formas diferentes de abordar el problema; Esta publicación tiene como objetivo consolidarlos y agregar 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, deberá desactivar la tarea 'Reiniciar' nuevamente y volver a configurar los permisos de seguridad, ya que el proceso de actualización la reemplaza.
Paso 1: deshabilite los temporizadores de activación para todos los perfiles de energía
Los bloggers tecnológicos perezosos quieren hacerle creer que este es el final de su búsqueda. Si bien es cierto que este paso eliminará algunos apagados erróneos, hay una serie de ajustes y configuraciones, particularmente en Windows 10, que no respetan esta configuración independientemente de la intervención del usuario. Vaya al Control Panel→ Power Options. Desde aquí, elija el perfil de energía que esté primero en la lista y desactive los "Temporizadores de activación". Trabaje en todos los perfiles.
Gracias al usuario de StackExchange.olee22para la imagen.
En Windows 10, se recomienda encarecidamente corregir esta configuraciónpara todos los perfiles de potencia, no sólo el que has elegido utilizar. Varias facultades de Windows utilizarán diferentes perfiles; esto mejora sus posibilidades de no ser despierto.
Paso 2: deshabilite la reboot
tarea programada rebelde
La carpeta de tareas programadas de UpdateOrchestrator de Windows 10 contiene una tarea llamada "reiniciar". Esta tarea activará su computadora para instalar actualizaciones independientemente de si hay alguna disponible o no. Simplemente quitarle el permiso para reactivar la computadora no es suficiente; Windows simplemente lo editará para otorgarse permiso nuevamente después de que abandone el Programador de tareas.
Desde tu Control Panel, ingresa Administrative Toolsy luego mira tu Task Scheduler.
Esta es la tarea que desea: en Task Scheduler Library→ Microsoft→ Windows→ UpdateOrchestrator. Las cosas más importantes que quieres hacer son:
A partir de aquí, deberá modificar 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. Haga clic derecho, ingrese propiedades yhazte el dueño. Finalmente configúrelo para que se muestre lo siguiente:
Aquí se muestra el archivo con permisos de solo lectura para SISTEMA. Haga que ninguna cuenta tenga acceso de escritura, ni siquiera la suya (siempre puede cambiar los permisos más adelante si es necesario). Asegúrese también de desactivar cualquier permiso heredado para el archivo desde el Advancedbotón en esta pantalla, para anular cualquier permiso existente en la carpeta raíz. Esto DETENDRÁ al 100% que Windows altere sus cambios después de haberlos implementado.
Una vez que haya configurado esto, ya no tendrá que preocuparse por la tarea programada.
Si no tiene permisos para modificar UpdateOrchestrator
tareas
Modificar las
UpdateOrchestrator
tareas de ahora requiereSYSTEM
permisos, niadministrator
permisosTrustedInstaller
.
Una de las formas de evitar esto es mediante:
- Instalando el propio de Microsoft
PsTools
. - Abriendo Command Promptcomo administrador y
cd
en su carpeta localPsTools
. - Ejecutando:
psexec.exe -i -s %windir%\system32\mmc.exe /s taskschd.msc
- Ir a
UpdateOrchestrator
y deshabilitar lasReboot
tareas, como se mencionó anteriormente.
Nota para Windows 1709 (Actualización de creadores de otoño)
El proceso de instalación de Windows cambia los permisos de los archivos, así que asegúrese de leer esta guía nuevamente después de la actualización.
Escuché informes de que se realiza una nueva tarea llamada AC Power Install
que requiere que se le apliquen los mismos pasos, pero no he visto esta tarea producida en mi propio dispositivo después de instalar la actualización 16299.192 (parche Meltdown 2018-01), por lo que no puedo asesorarlo con absoluta certeza. Los mismos pasos realizados anteriormente deberían funcionar en cualquier tarea que se haya introducido.
Paso 3: verifique los temporizadores de activación en PowerShell
Ha desactivado la funcionalidad del temporizador de activación, pero Windows 10 tiene la costumbre de no respetar esa configuración, por lo que, para estar seguros, ejecutaremos un comando de PowerShell para eliminar todas las tareas que pueden, de manera factible, activar su PC. Abra un símbolo del sistema administrativo de PowerShell (Inicio, escriba 'Powershell', Ctrl+Shift+Enter) y coloque este comando en la ventana:
Get-ScheduledTask | where {$_.settings.waketorun}
Realice todas las tareas que enumera y elimine su permiso para reactivar su computadora. No deberías tener que preocuparte por los permisos como lo hicimos nosotros con Reboot
; Ese fue un caso aislado.
Paso 4: comprueba qué hardware puede reactivar tu PC
Una gran cantidad de hardware USB, cuando está activado, tiene la capacidad de reactivar su PC (los teclados a menudo lo hacen cuando se presionan teclas, por ejemplo); 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 su dispositivo está conectado a una red local mediante un cable Ethernet (no funciona para Wi-Fi), puede enviar comunicaciones que activarán su PC cuando las reciba. Es una característica que uso con frecuencia, pero debo alinearla, ya que su comportamiento predeterminado es demasiado entusiasta.
Ingrese el siguiente comando en un símbolo del sistema administrativo:
powercfg -devicequery wake_armed
Desde aquí, busque los dispositivos en su Device Manager( Control Panel) y, debajo de la Power Managementpestaña, elimine su capacidad para reactivar su computadora. Si tiene tarjetas de interfaz de red para las que desea mantener Wake-on-LAN, habilítela Only wake this device if it receives a magic packeten lugar de activarla para todo el tráfico enviado.
Paso 5: verifique la Política de grupo para estar completamente seguro
Haga clic derecho en su menú Inicio y seleccione Run. Escribir GPEdit.MSC
. Busque la siguiente configuración en Computer Configuration→ Administrative Templates→ Windows Components→ Windows Updates→ Enabling Windows Update Power Managementpara activar automáticamente el sistema para instalar actualizaciones programadas. Haga doble clic en él y configúrelo como Desactivado.
Paso 6: deshabilite la activación de su máquina para mantenimiento automático
Alguien en Microsoft tiene sentido del humor para esto. Si su PC lo despierta por la noche, lo único que desea escuchar más que cualquier otra cosa es el crujido y chirrido del disco duro mientras se realiza una desfragmentación nocturna. Deshabilite esta función buscando la Security and Maintenancesección del archivo Control Panel. Desde allí, expanda Maintenancey busque el enlace a Change Maintenance settings.
Establezca la hora en algo más sociable (las 7 p. m. está bien) y desactive la capacidad de la máquina para despertarse sola para la tarea.
Respuesta2
Ahora uso este script paraEvite de manera concluyente que los temporizadores de activación activen 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 puede ver, aborda más o menos todos los pasos mencionados enesteresponder excepto para los permisos del archivo de tareas programadas. Sin embargo, dado que tengo la intención de hacerlo en silenciocorrereste script en cada desbloqueo/inicio de sesión, espero que esto no sea un problema en absoluto.
Respuesta3
La otra respuesta me pareció increíblemente útil y simplemente comentaría si pudiera, pero quería contribuir con un 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
Esperemos que sea de alguna utilidad para algunas personas.
Es posible que veas esta ventana emergente y tengas que hacer clic en "Más información" y luego en "Ejecutar de todos modos" (si no estás seguro, no dudes en verificar el código fuente, después de todo, está en github):