
Ao usar o Server 2012, desabilitei a (malvada) tarefa de Manutenção Automática usando os seguintes comandos (originalmente encontrado aqui):
psexec \\SERVERNAME -s schtasks /change /tn "\Microsoft\Windows\TaskScheduler\Maintenance Configurator" /DISABLE
psexec -s schtasks /change /tn "\Microsoft\Windows\TaskScheduler\Maintenance Configurator" /DISABLE
Quando tento executar isso no Server 2016, essas entradas não existem. Eu sei que está em algum lugar porque o TiWorker.exe consome muita CPU fazendo tudo o que faz. Alguém sabe onde está essa configuração no Server 2016?
Responder1
Parece que essa tarefa não está incluída no Server 2016. Verifiquei isso em uma nova instalação. O Windows parece executar as tarefas agendadas de manutenção individualmente agora.
Aquele que executa o tiworker e o que considero mais intrusivo é a tarefa SilentCleanup, que executa a limpeza de disco, independentemente de o espaço em disco estar baixo ou não, contrariando sua descrição. Esse pode ser encontrado na pasta DiskCleanup. Acho que vou desabilitar essa tarefa de maneira geral, pois não há razão para um servidor executar a limpeza automática de disco IMO.
Editar: encontrei uma maneira de verificar quais são todas as tarefas de manutenção:
$MaintTasks = @()
foreach ($task in (Get-ScheduledTask))
{
if (($task | Export-ScheduledTask) -like “*maintenance*”) {$MaintTasks += $task}
}
$MaintTasks
Responder2
Em uma nova instalação do 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
A tarefa de Diagnóstico parece ser relevante. Ele está usando um manipulador personalizado. Você já investigou isso?
Responder3
Isso desabilitará o trabalho de otimização de disco (testado em um Windows Server 2016):
If ((Get-ScheduledTask -TaskName 'ScheduledDefrag').State -eq 'Ready')
{
Disable-ScheduledTask -TaskName 'ScheduledDefrag' -TaskPath '\Microsoft\Windows\Defrag'
}
Responder4
Utilize PSEXEC. Após baixar o PSEXEC, abra um prompt de comando com permissões elevadas e digite:
psexec \%computername% -s schtasks /change /tn "MicrosoftWindowsTaskSchedulerMaintenance Configurator" /disable