共用方式為


包含登入會話標識碼的 %TEMP% 資料夾意外刪除

本文提供因應措施,說明在已安裝桌面體驗的 Windows Server 中刪除包含登入會話標識碼的 %TEMP% 資料夾的問題

適用於: Windows Server 2022、Windows Server 2019
原始 KB 編號: 4506040

徵兆

在已安裝桌面體驗的 Windows Server 中,如果您仍然登入電腦超過七天, 則會刪除包含會話標識碼的 %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% 資料夾不包含登入工作階段識別碼。 例如: C:\Users\<User Account>\AppData\Local\Temp
  • %TEMP% 資料夾不是空的。
  • 沒有人登入伺服器,或任何用戶會話會在七天內結束。

%TEMP% 資料夾是由 SilentCleanup (cleanmgr.exe) 或 Storage Sense 刪除 (storsvc.exe)

這是依照設計的行為。

登入會話超過七天時,SilentCleanup 工作會刪除 %TEMP% 資料夾(cleanmgr.exe)。 SilentCleanup 會排程每日與自動維護。

啟用 Storage Sense (storsvc.exe) 時, 可能會刪除 %TEMP% 資料夾。 記憶體感知預設為停用,但當 C 磁碟驅動器用盡可用空間時,可能會啟用它。

若要暫時解決此問題,請遵循下列步驟:

  1. 從資料夾值移除 %TEMP% 專案(建議)或修改 LastAccess 值
  2. 停用記憶體感知(如果已啟用記憶體感知)。
  3. 停用低可用磁碟空間警告
  4. 使用組策略停用存儲設備感知(僅限 Windows Server 2022)。

步驟 1:從資料夾值移除 %TEMP% 專案或修改 LastAccess 值

移除 %TEMP% 專案 (建議)

  1. 開啟 [登錄編輯程式]。 選取 [開始] > [執行],輸入 regedit,然後選取 [確定]

  2. 找出並選取下列登錄子機碼:

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

  3. 以滑鼠右鍵按兩下 [資料夾],然後選取 [ 修改]。

  4. 在 [ 值數據] 方塊中 ,刪除 %TEMP% 專案,然後選取 [ 確定]。 例如:

    編輯前的值:

    %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,然後選取 [確定]

  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 之後,請小心不要在 C 磁碟驅動器上用盡可用空間。

步驟 2:停用記憶體感知(如果已啟用記憶體感知)

  1. 移至 [啟動>設定>系統>記憶體]。
  2. 關閉 記憶體感知
  3. 結束 設定

步驟 3:停用低可用磁碟空間警告

當 C 磁碟驅動器用盡可用磁碟空間時,可能會啟用記憶體感知。 您可以使用下列步驟停用低可用磁碟空間警告:

  1. 開啟 [登錄編輯程式]。 選取 [開始>執行],輸入 regedit,然後選取 [確定]。

  2. 找出並選取下列登錄子機碼:

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

  3. 移至 [編輯],然後選取 [新增>DWORD 值]。

  4. 輸入 NoLowDiskSpaceChecks ,然後按 Enter。

  5. 以滑鼠右鍵按兩下 NoLowDiskSpaceChecks 值,然後選取 [ 修改]。

  6. 在 [值資料] 方塊中輸入 1,然後選取 [確定]。

  7. 關閉 [登錄編輯程式]

  8. 重新啟動電腦。

步驟 4:使用組策略停用儲存設備感知 (僅限 Windows Server 2022)

針對 Windows Server 2022,您也需要使用組策略停用記憶體感知,如下所示:

  1. 開啟 組策略編輯器。 選取 [啟動>執行],輸入 gpedit.msc,然後選取 [確定]。

  2. 找出下列原則:

    計算機設定系統管理>範本>系統>儲存感知

  3. 編輯 [允許儲存感知原則停用]。

  4. 關閉 組策略編輯器

參考

如需記憶體感知的詳細資訊,請參閱 使用記憶體感知管理磁碟驅動器空間。