使用 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