使用 Server 2012 时,我使用以下命令禁用了(邪恶的)自动维护任务(最初在这里发现):
psexec \\SERVERNAME -s schtasks /change /tn "\Microsoft\Windows\TaskScheduler\Maintenance Configurator" /DISABLE
psexec -s schtasks /change /tn "\Microsoft\Windows\TaskScheduler\Maintenance Configurator" /DISABLE
当我尝试在 Server 2016 上运行此程序时,这些条目不存在。我知道它在某个地方,因为 TiWorker.exe 执行任何操作都会占用大量 CPU。有人知道此设置在 Server 2016 中的哪里吗?
答案1
看起来该任务未包含在 Server 2016 中。我在全新安装中验证了这一点。Windows 现在似乎单独运行维护计划任务。
运行 tiworker 的那个任务和我发现最具有干扰性的那个任务是 SilentCleanup 任务,它无论磁盘空间是否低都会运行磁盘清理,这与它的描述相反。你可以在 DiskCleanup 文件夹下找到它。我想我会全面禁用这个任务,因为在我看来,服务器没有理由运行自动磁盘清理。
编辑:我找到了一种方法来检查所有维护任务是什么:
$MaintTasks = @()
foreach ($task in (Get-ScheduledTask))
{
if (($task | Export-ScheduledTask) -like “*maintenance*”) {$MaintTasks += $task}
}
$MaintTasks
答案2
在全新安装的 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
诊断任务似乎很重要。它使用自定义处理程序。您已经深入研究过它了吗?
答案3
这将禁用磁盘优化作业(在 Windows Server 2016 上测试):
If ((Get-ScheduledTask -TaskName 'ScheduledDefrag').State -eq 'Ready')
{
Disable-ScheduledTask -TaskName 'ScheduledDefrag' -TaskPath '\Microsoft\Windows\Defrag'
}
答案4
使用 PSEXEC。下载 PSEXEC 后,以提升的权限打开命令提示符,然后输入:
psexec \%computername% -s schtasks /change /tn "MicrosoftWindowsTaskSchedulerMaintenance Configurator" /disable