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

この記事では、デスクトップ エクスペリエンスがインストールされている Windows Server で、ログオン セッション ID を含む %TEMP% フォルダーが削除される問題の回避策について説明します。

適用対象: Windows Server 2022、Windows Server 2019
元の KB 番号: 4506040

現象

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

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

C:\Users\Administrator>set TEMP
TEMP=C:\Users\ADMINI~1\AppData\Local\Temp\1
C:\Users\Administrator>dir %TEMP%
Volume in drive C has no label.

Volume Serial Number is C861-D3EF

Directory of C:\Users\ADMINI~1\AppData\Local\Temp

File Not Found

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

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

%TEMP% フォルダーが SilentCleanup (cleanmgr.exe) または Storage Sense (storsvc.exe) によって削除されます

この動作は仕様です。

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

Storage Sense (storsvc.exe) が有効になっていると、 %TEMP% フォルダーが削除される可能性があります。 ストレージ センサーは既定では無効になっていますが、C ドライブが空き領域を使い切ったときに有効になる場合があります。

この問題を回避するには、以下の手順を実行します。

  1. フォルダー値 (推奨) から %TEMP% エントリを削除するか、LastAccess 値を変更します
  2. ストレージ センサーを無効にします (記憶域センサーが有効になっている場合)。
  3. 空きディスク領域の不足に関する警告を無効にします
  4. グループ ポリシーを使用して Storage Sense を無効にします (Windows Server 2022 のみ)。

手順 1: フォルダー値から %TEMP% エントリを削除するか、LastAccess 値を変更する

%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% フォルダーを手動で削除する必要があります。

また、 LastAccess 値を変更することもできます。

LastAccess 値を変更する

注:

Windows Server 2019 の場合は、最初に 4 月の累積的な更新プログラム をインストールしてから、次の手順に従います。

  1. レジストリ エディターを開きます。 [スタート]>[ファイル名を指定して実行] の順に選択し、「regedit」と入力して、[OK] を選択します。

  2. 次のレジストリ サブキーを見つけてクリックします。

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Files

  3. [LastAccess] を右クリックし、[変更] を選択します。

  4. [ 値データ ] ボックスに、値を日数で入力します。 既定値は 7 です。 設定できる最大値は、1601 年 1 月 1 日から現在までの日数です。

  5. レジストリ エディターを終了します。

注:

この構成を行った後、 LastAccess 値は、すべての一時フォルダー 内のファイルcleanmgr.exe 削除する期間を制御します。 LastAccess 値が大きすぎると、空き領域が枯渇する可能性があります。

cleanmgr.exe 設定に加えて、Storage Sense に対して次の設定を行います。

注:

Storage Sense の構成を行った後は、C ドライブの空き領域が不足しないように注意してください。

手順 2: ストレージ センサーを無効にする (ストレージ センサーが有効になっている場合)

  1. [スタート] [設定] [システム>ストレージ] > の順に移動します>。
  2. ストレージ センサーをオフにします。
  3. 終了設定

手順 3: 空きディスク領域の不足に関する警告を無効にする

C ドライブの空きディスク領域が不足すると、Storage Sense が有効になっている可能性があります。 次の手順を使用して、空きディスク領域の不足に関する警告を無効にすることができます。

  1. レジストリ エディターを開きます。 [Start Run]\(実行の開始\>) を選択し、「regedit」と入力し、[OK] を選択します

  2. 次のレジストリ サブキーを見つけて選択します。

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer

  3. [編集] に移動し、[新しい>DWORD 値] を選択します。

  4. 「NoLowDiskSpaceChecks」と入力し、Enter キーを押します。

  5. NoLowDiskSpaceChecks 値を右クリックし、[変更] を選択します

  6. [値データ] ボックスに「1」と入力し、[OK] を選択します

  7. レジストリ エディターを閉じます。

  8. コンピューターを再起動します。

手順 4: グループ ポリシーを使用してストレージ センサーを無効にする (Windows Server 2022 のみ)

Windows Server 2022 の場合は、次のようにグループ ポリシーを使用して Storage Sense を無効にする必要もあります。

  1. グループ ポリシー エディターを開きます。 [Start Run]\(実行の開始\>) を選択し、「gpedit.msc」と入力し、[OK] を選択します

  2. 次のポリシーを見つけます。

    コンピューターの構成>管理用テンプレート>システム>ストレージ センサー

  3. [ストレージ センサーの許可] ポリシーを [無効] に編集します。

  4. グループ ポリシー エディターを閉じます。

関連情報

ストレージ センサーの詳細については、「Storage Sense を使用してドライブ領域を管理する」を参照してください。