![Windows:允许普通(非提升)程序写入 Program Files 目录](https://linux22.com/image/1481793/Windows%EF%BC%9A%E5%85%81%E8%AE%B8%E6%99%AE%E9%80%9A%EF%BC%88%E9%9D%9E%E6%8F%90%E5%8D%87%EF%BC%89%E7%A8%8B%E5%BA%8F%E5%86%99%E5%85%A5%20Program%20Files%20%E7%9B%AE%E5%BD%95.png)
我厌倦了旧应用程序因为无法写入“Program Files”目录而表现异常的情况。我不想手动将它们设置为以管理员身份运行,而且我并不特别关心安全性——除了信任我运行的应用程序外,我只在运行游戏时启动 Windows(因此分区不包含任何有价值的数据),而且我通常每隔几个月就会重新安装 Windows。
如何才能将 Program Files 和 Program Files (x86) 变成普通目录(从权限角度来看),以便每个应用程序都可以写入,而不管权限如何?
我恰好目前正在运行 Windows 10,但理想情况下,我想知道如何在 8/7/Vista 上执行此操作,以供将来参考。
编辑:我应该注意到我碰巧正在使用 Windows 10 的企业版,因此我可以根据需要修改组策略或其他任何内容。
答案1
答案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”。
这不是你无法改变的事情。这是有意为之。