Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Win7 新增程式庫報錯 16389 (0x4011)?組策略「防止使用者將檔案新增至使用者檔案夾根目錄」誤啟用

編輯:Windows 7 系統介紹

在檔案總管「程式庫」右鍵「新增」→「程式庫」彈出「無法建立檔案 '新程式庫.library-ms' 檔案系統錯誤 (16389)」。錯誤代碼 16389 (0x4011) 對應 ERROR_DIRECTORY_NOT_EMPTY 或權限拒絕,實際主因是群組原則**「防止使用者將檔案新增至對應該使用者的『使用者檔案夾』資料夾根目錄」**被啟用,封鎖了 %USERPROFILE% 根目錄寫入權限,而程式庫定義檔 (.library-ms) 預設儲存於 %APPDATA%\Microsoft\Windows\Libraries (屬使用者設定檔樹狀),受策略波及。

錯誤 16389 開啟 gpedit.msc UAC 提示 組策略路徑 策略設定視窗 設為未啟用 重開機驗證

修復步驟

  1. Win+R → gpedit.msc (專業/旗艦/企業版)。
  2. 依序展開:使用者設定 → 系統管理範本 → Windows 元件 → 檔案總管。
  3. 右側找到 「防止使用者將檔案新增至對應該使用者的『使用者檔案夾』資料夾根目錄」 → 雙擊。
  4. 設為 「未啟用」 或 「已停用」 → 「確定」。
  5. 關閉編輯器,**重新開機** (或登出登入) 生效。
  6. 再次嘗試新增程式庫,應成功。

Win7 家用版 / 無 gpedit.msc:登錄表法

  1. regedit → HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer。
  2. 找到 NoFilesOnUserFolderRoot (DWORD) → 改值 0 或刪除。
  3. 同步檢查 HKLM 同路徑。重開機生效。

原理深度解析

  • 該策略原意:防止使用者在 C:\Users\Username\ 根目錄亂建檔案/資料夾,維護設定檔整潔 (企業/學校環境常用)。
  • 副作用:程式庫定義檔 (.library-ms) 儲存於 %APPDATA%\Microsoft\Windows\Libraries\,屬使用者設定檔子樹,**新增程式庫實質是在該資料夾建立檔案**,被策略誤判為「在使用者檔案夾根目錄新增檔案」而攔截。
  • 錯誤代碼 16389 為通用「目錄非空/存取拒絕」映射,非標準 Win32 錯誤碼,微軟文件鮮少說明,易誤導排查方向。

驗證與延伸

  • 修復後,程式庫新增、重命名、刪除、包含資料夾管理均正常。
  • 若企業環境**必須**啟用此策略,替代方案:
    - 由管理員預建常用程式庫定義檔部署至使用者 Libraries 資料夾。
    - 使用 library-ms XML 手動編寫部署 (繞過 Shell 新增 UI)。

錯誤 16389 看似檔案系統故障,實為群組原則副作用。精準定位「檔案總管」下該策略並停用,是 Win7 程式庫功能恢復的標準解法,避免無謂的磁碟檢查/重灌系統。

Copyright © Windows教程網 All Rights Reserved