Mirate el visor de sucesos. Y audita que nadie esté haciendo un shutdown o ejecutando un script tal que:
Cita: Const SHUTDOWN = 1
strComputer = "hostname"
Set objWMIService = GetObject("winmgmts: {(Shutdown)}" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
("SELECT * FROM Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
ObjOperatingSystem.Win32Shutdown(SHUTDOWN)
Next
audita también si se puede acceder al servidor por terminal server y un bendito de dios en lugar de cerrar la sesión lo apaga...
audita las tareas programadas y el comando at ( c:\> at ) ...
instala un programa para monitorizar la temperatura de la cpu y mira si hay un servicio o proceso que ante un overtemp mande apagar el equipo ...
...
salu2