Windows:允許普通(非提升)程式寫入 Program Files 目錄

Windows:允許普通(非提升)程式寫入 Program Files 目錄

我厭倦了舊應用程式的奇怪行為,因為它們無法寫入“Program Files”目錄。我不想手動將它們設定為以管理員身份運行,而且我並不特別關心安全性 - 除了信任我正在運行的應用程式之外,我只啟動 Windows 來運行遊戲(因此分區不會不包含任何有價值的數據),而且我通常每隔幾個月就會重新安裝Windows。

如何讓 Program Files 和 Program Files (x86) 成為每個應用程式都可以寫入的普通目錄(從權限角度來看),無論權限為何?

我目前正在運行 Windows 10,但理想情況下我也想知道如何在 8/7/Vista 上執行此操作,以供將來參考。

編輯:我應該注意,我碰巧使用的是 Windows 10 企業版,因此我可以根據需要修改群組原則或其他任何內容。

答案1

您可以透過變更資料夾的安全設定來讓應用程式寫入 Program Files。

  1. 轉到屬性並選擇安全性選項卡。
  2. 按一下“進階”。

    在此輸入影像描述

  3. 將所有權更改為您自己的帳戶而不是TrustedInstaller,並讓它傳播。這允許您將自己添加到委託人清單中。
  4. 點擊“新增”並輸入您的用戶名,按“檢查名稱”,系統會自動更正。

現在,您可以為您的用戶名添加“完全控制”,並且您運行的所有應用程式都應該能夠寫入此資料夾及其子資料夾。

這幫助我讓 Chrome 將 OpenVPN 設定檔直接儲存到其安裝目錄。

答案2

由於Windows Vista (UAC) 引入的安全功能,任何嘗試寫入受保護位置(例如“程式檔案”)的非管理員程式都會捕獲其寫入內容,並將其重定向到替代的“用戶友好”位置。

維基百科指出(我已經突出顯示了相關部分):

假設使用者將以管理員權限執行而編寫的應用程式在早期版本的Windows 中從有限的使用者帳戶執行時會遇到問題,通常是因為它們試圖寫入電腦範圍或系統目錄(例如Program Files)或註冊表項(特別是 HKLM)。 UAC 嘗試使用以下方法來緩解這種情況檔案和註冊表虛擬化,將寫入(以及後續讀取)重新導向到使用者設定檔中的每個使用者位置。例如,如果應用程式嘗試寫入“C:\program files\appname\settings.ini”,而使用者沒有寫入該目錄的權限,則寫入將被重新導向到“C:\Users\username” \AppData \Local\VirtualStore\Program Files\appname\settings.ini」。

這不是你無法改變的事情。這是故意的。

相關內容