Cuando utilicé Server 2012, desactivé la (malvada) tarea de mantenimiento automático usando los siguientes comandos (encontrado originalmente aquí):
psexec \\SERVERNAME -s schtasks /change /tn "\Microsoft\Windows\TaskScheduler\Maintenance Configurator" /DISABLE
psexec -s schtasks /change /tn "\Microsoft\Windows\TaskScheduler\Maintenance Configurator" /DISABLE
Cuando intento ejecutar esto en Server 2016, esas entradas no existen. Sé que está en alguna parte porque TiWorker.exe consume una gran cantidad de CPU haciendo lo que sea que hace. ¿Alguien sabe dónde está esta configuración en Server 2016?
Respuesta1
Parece que esa tarea no está incluida en Server 2016. Verifiqué esto en una instalación nueva. Windows parece ejecutar las tareas de mantenimiento programadas individualmente ahora.
La que ejecuta tiworker y la que encuentro más intrusiva es la tarea SilentCleanup, que ejecuta la limpieza del disco independientemente de si hay poco espacio en el disco o no, en contra de su descripción. Ese se puede encontrar en la carpeta DiskCleanup. Creo que voy a desactivar esta tarea en todos los ámbitos, ya que no hay ninguna razón por la que un servidor deba ejecutar la limpieza automática del disco, en mi opinión.
Editar: encontré una manera de comprobar cuáles son todas las tareas de mantenimiento:
$MaintTasks = @()
foreach ($task in (Get-ScheduledTask))
{
if (($task | Export-ScheduledTask) -like “*maintenance*”) {$MaintTasks += $task}
}
$MaintTasks
Respuesta2
En una instalación nueva de WS 2016:
Get-ScheduledTask | Where-Object -Property Description -Match "maint"
TaskPath TaskName State
-------- -------- -----
\Microsoft\Windows\ApplicationData\ DsSvcCleanup Ready
\Microsoft\Windows\Diagnosis\ Scheduled Ready
\Microsoft\Windows\DiskCleanup\ SilentCleanup Ready
\Microsoft\Windows\Windows Defender\ Windows Defender Cache Mainten... Ready
La tarea de Diagnóstico parece ser relevante. Está utilizando un controlador personalizado. ¿Ya has profundizado en eso?
Respuesta3
Esto deshabilitará el trabajo de optimización del disco (probado en Windows Server 2016):
If ((Get-ScheduledTask -TaskName 'ScheduledDefrag').State -eq 'Ready')
{
Disable-ScheduledTask -TaskName 'ScheduledDefrag' -TaskPath '\Microsoft\Windows\Defrag'
}
Respuesta4
Utilice PSEXEC. Después de descargar PSEXEC, abra un símbolo del sistema con permisos elevados y escriba:
psexec \%computername% -s schtasks /change /tn "MicrosoftWindowsTaskSchedulerMaintenance Configurator" /disable