Trabajando con un sistema de pruebas con Windows Server 2016 standard edition que tenía virtualizado y apagado hace tiempo, me encontré con que cada poco tiempo se apagaba por sí mismo sin haber pulsado el botón de apagado.
Finalmente la explicación me la aportó el registro de sucesos del sistema: filtrando por los tipos de evento 1074, 1076
encontré el demonio causante de los apagados:
Me encuentro los eventos reveladores:
Comment: The license period for this installation of Windows has expired. The operating system is shutting down.
El problema es que el período de prueba ha expirado y el servicio Windows License Monitoring Service (WLMS) decide apagar el sistema a intervalos aproximados de una hora.
La SOLUCIÓN tiene varios pasos definidos:
– obtener una sesión con privilegios del usuario SYSTEM
– eliminar el servicio WLMS
– eliminar la entrada en el registro asociada a WLMS
– reiniciar el sistema
Aunque hay bastantes métodos de obtener una sesión de System, la mayoría consiste en descargar programas que hacen saltar las alarmas de muchos antivirus. Yo opté por descargar el conocido paquete de utilidades de línea de comandos PSTOOLS desde la propia web de Microsoft, lo que constituye la opción más segura.
Así, desde una consola cmd.exe ejecutada como administrador y con la ayuda de psexec.exe obtendremos una sesión de consola bajo la identidad de SYSTEM:
psexec.exe -i -d -s cmd.exe
Comprobamos la identidad con whoami
Entonces ya podemos detener y eliminar el servicio WLMS:
net stop WLMS
sc delete WLMS
y borrar rastro de configuración en el registro con regedit ejecutado como nt authority:
HKEY_LOCAL_MACHINE - System - CurrentControlSet - Services
Locate - WLMS
o
HKEY_LOCAL_MACHINE - System - CurrentControlSet - Services
Locate - WLMS
Tras reiniciar el sistema, el problema debería estar solucionado.
La mejor pista fue el artículo How to stop expired Windows Server auto-shutdown every hour