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のどこにあるか誰か知っていますか?
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
診断タスクは関連しているようです。カスタムハンドラーを使用しています。もう掘り下げましたか?
そのタスクはServer 2016に含まれていないようです。新規インストールでこれを確認しました。現在、Windowsはメンテナンススケジュールタスクを個別に実行しているようです。
Tiworkerを実行するものと、私が最も煩わしいと思うのはSilentCleanupタスクです。このタスクは、ディスクスペースが少ないかどうかに関係なく、ディスククリーンアップを実行します。これは、DiskCleanupフォルダーの下にあります。サーバーが自動ディスククリーンアップIMOを実行する必要がある理由はないので、このタスクを全面的に無効にするつもりです。
編集:すべてのメンテナンスタスクを確認する方法を見つけました:
$MaintTasks = @()
foreach ($task in (Get-ScheduledTask))
{
if (($task | Export-ScheduledTask) -like “*maintenance*”) {$MaintTasks += $task}
}
$MaintTasks
これにより、ディスク最適化ジョブが無効になります(Windows Server 2016でテスト済み)。
If ((Get-ScheduledTask -TaskName 'ScheduledDefrag').State -eq 'Ready')
{
Disable-ScheduledTask -TaskName 'ScheduledDefrag' -TaskPath '\Microsoft\Windows\Defrag'
}