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) 引入的安全功能,任何尝试写入受保护位置(例如“Program Files”)的非管理员程序都将被捕获并重定向到另一个“用户友好”位置。

维基百科指出(我已将相关部分标出):

在早期版本的 Windows 中,假设用户将以管理员权限运行的应用程序在从受限用户帐户运行时会遇到问题,通常是因为它们试图写入计算机范围或系统目录(例如 Program Files)或注册表项(特别是 HKLM)。UAC 尝试使用以下方法缓解此问题:文件和注册表虚拟化,将写入(和后续读取)重定向到用户配置文件中每个用户的位置。例如,如果应用程序尝试写入“C:\program files\appname\settings.ini”,而用户没有写入该目录的权限,则写入将被重定向到“C:\Users\username\AppData\Local\VirtualStore\Program Files\appname\settings.ini”。

这不是你无法改变的事情。这是有意为之。

相关内容