Windows Server 2019 でログオン セッション ID を含む %TEMP% フォルダーが予期せず削除される

適用対象: Windows Server 2019

現象


デスクトップ エクスペリエンスがインストールされている Windows Server 2019 では、コンピューターに 7 日以上ログオンしたままにすると、セッション ID を含む %TEMP% フォルダが削除されます。 したがって、%TEMP% にアクセスする必要がある一部のアプリケーションは、その後は正しく機能しません。

%TEMP% フォルダ パスを特定し、フォルダーが削除されたことを確認するには、次のコマンドを実行します (出力例を示します)。



次のシナリオでは問題は発生しません。

  • %TEMP% フォルダーには、ログオン セッション ID が含まれていません。 (たとえば、C:\Users\<User Account>\AppData\Local\Temp。)
  • %TEMP% フォルダは空ではありません。
  • 誰もサーバーにログオンしないか、ユーザー セッションが 7 日以内に終了します。

原因


この動作は仕様です。

%TEMP% フォルダは、ログオン セッションが 7 日を超えると、SilentCleanup タスク (Cleanmgr.exe) によって削除されます。 SilentCleanup は、自動メンテナンスとともに毎日スケジュールされます。

回避策


この問題を回避するには、以下のいずれかの方法を使用します。

方法 1 (推奨): フォルダ値から %TEMP% エントリを削除する

  1. レジストリ エディターを起動します。 これを実行するには、[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。「regedit」と入力し、[OK] をクリックします。
  2. 次のレジストリ サブキーを見つけてクリックします。
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Files
  3. [フォルダ] を右クリックし、[修正]をクリックします。
  4. [値のデータ] ボックスで、%TEMP% エントリを削除し、[OK] をクリックします。 例:

    編集前の値:

    %TEMP%|%WINDIR%\Temp|%WINDIR%\Logs|%WINDIR%\System32\LogFiles

    編集後の値:
    %WINDIR%\Temp|%WINDIR%\Logs|%WINDIR%\System32\LogFiles
  5. レジストリ エディタを終了します。

注: この構成を行った後、空き領域がなくなるのを防ぐため、%TEMP% フォルダを手動で削除する必要があります。
 

方法 2: LastAccess 値を変更する

注: これらの手順を実行するには、4 月の累積的な更新プログラムを最初にインストールします。

  1. レジストリ エディターを起動します。 これを実行するには、[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。「regedit」と入力し、[OK] をクリックします。
  2. 次のレジストリ サブキーを見つけてクリックします。
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Files
  3. [LastAccess] を右クリックし、[修正] をクリックします。
  4. [値のデータ] ボックスに、値を日数で入力します。 範囲は 7 (既定) から 4294967295 (最大) です。
  5. レジストリ エディターを終了します。

注: この構成を行った後、LastAccess 値は、Cleanmgr.exe がすべての一時フォルダ内のファイルを削除する期間を制御します。 LastAccess 値の設定が高すぎると、空き領域がなくなる可能性があります。