为什么我们需要 Windows 中的“Program Files”文件夹?

为什么我们需要 Windows 中的“Program Files”文件夹?

从 Windows “Program Files” 文件夹运行的可执行文件与从C:\SomeFolder

也许涉及 UAC/委派/其他安全层?或者它只是一个存放第三方应用程序的地方,仅此而已。

答案1

从技术上来说,程序可以安装或驻留在任何地方。

将已安装的程序存储在公共文件夹下增加了组织的好处,以便可以通过视觉快速识别它们,并可以快速轻松地应用安全和其他策略。

这就是该文件夹的全部功能。从执行角度来看,它与任何其他文件夹之间通常没有技术差异。

请注意,除了以下内容之外,我从未见过任何明确的参考资料来支持这一点这个帖子,我不认为这是绝对结论(即使是 Raymond Chen 的)。该链接中有趣的摘录是

回到 Windows 3.1。微软没有提供应用程序默认安装位置的指导。结果,它们到处都是。有些安装在 C: 驱动器的根目录中。有些安装在 C:\LitWare 目录中。有些安装在 Windows 目录中。一片混乱。引入 Program Files 是为了给混乱带来秩序。可以把它想象成在停车场画线。

但是,例外情况是 32 位可执行文件在 64 位安装中运行。64 \Program Files位安装中保存二进制文件的 64 位副本,而64 位安装\Program Files (x86)中保存 32 位副本。如果 32 位可执行文件查找\Program Files(在 64 位 Windows 版本可用之前,这在历史上是所有程序文件的位置),则 WOW64 将重定向 32 位可执行文件以查找\Program Files (x86)其所需的其他 32 位二进制文​​件。这使得程序可以有 32 位和 64 位版本。

答案2

默认情况下,Windows(10)对 Program Files 文件夹设置了某些权限。

这些是在 C 中创建的常规文件夹的权限: 普通权限

这些是 Program Files 的权限:

程序文件权限

您可以在此处看到:

  • 普通用户可以执行程序,但不能进行更改
  • 应用程序可以读取和执行其他程序,但不能对其进行更改(甚至不能对其自身进行更改)
  • “受信任的安装程序”和管理员拥有完全控制权

这意味着您需要管理员权限(或需要运行受信任的安装程序)才能将程序放入“Program Files”,但一旦将其放入那里,任何人都可以运行这些程序。这可以防止恶意程序修改其他程序,并防止没有管理员权限的用户安装不受信任的程序。此外,程序不再能够写入自己的目录(这是 32 位时代的常见做法)。这会阻止永久更改程序的安全漏洞,并强制程序将所需的任何持久数据写入 %appdata%。

但是,这些预设只是默认设置。如果需要,可以将相同的安全策略应用于任何其他文件夹。

答案3

从 Windows“Program Files”文件夹运行的可执行文件在从 C:\SomeFolder 执行程序时行为是否有所不同

Program Files当然具有特殊地位。虽然它不会直接改变表现良好的程序的执行,UAC 将捕获对该文件夹的写入并重定向它们。这可能意味着有缺陷的软件在安装在那里时可以运行,但在其他地方则不能。

这并不意味着我们绝对需要“Program Files”,但它确实使这样的功能更容易实现。

答案4

从 Windows“Program Files”文件夹运行的可执行文件在从 C:\SomeFolder 执行程序时行为是否有所不同

从用户的角度来看,也许如此。这完全取决于您问题的下一部分。

也许涉及 UAC/委派/其他安全层?或者它只是一个存放第三方应用程序的地方,仅此而已。

是的,其他安全层可以严重影响程序的操作。当它首次推出时,95 默认将所有用户设为管理员,因为通常只有一个帐户,至少对于消费者系统而言。所以基本上任何人都可以写入该Program Files文件夹。有大量用户看到该Program Files文件夹​​(以及Windows文件夹)占用了大量空间,并会删除它们,因为他们认为不需要它们。哎呀,计算机由于某种原因无法启动。

XP(可能是 2000)改变了这一点,并有一个默认管理员帐户,并锁定了这些文件夹,以便基本用户无法删除或写入内容(这破坏了许多程序)。默认情况下,用户不是管理员,如果用户运行的程序试图写入或删除文件夹中的内容Program Files(或其中的文件夹内的内容),他们会被拒绝并且可能无法正常工作。通常读取是完全开放的,所以如果这就是程序所做的一切,那就没问题了。有办法允许普通用户访问,以便他们可以在其中写入和删除内容,或者您​​可以以管理员身份运行该程序,它可能会重新开始工作。

至于与 的运行方式不同C:\SomeFolder,也许吧。如果您锁定 ,SomeFolderProgram Files它们的行为可能相同。默认情况下,如果您创建SomeFolder,您将获得对它的完全读/写/删除访问权限。

我对其中一些内容的记忆开始变得有些模糊,所以我可能对 Windows 的一个或两个版本有所误解。我从事 IT 行业已有 17 年,从 80 年代末 90 年代初就开始玩电脑了。

相关内容