![我应该在 Windows 7 上的哪里 xcopy-deploy 我的应用程序?](https://linux22.com/image/1231502/%E6%88%91%E5%BA%94%E8%AF%A5%E5%9C%A8%20Windows%207%20%E4%B8%8A%E7%9A%84%E5%93%AA%E9%87%8C%20xcopy-deploy%20%E6%88%91%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
客户 我有一些使用纯 xcopy 安装的应用程序。我知道这些应用程序将在运行时将一些数据写入其安装目录。现在我希望此应用程序可从开始菜单供我电脑上的所有用户使用。在 Windows 7 下我应将这些应用程序放在哪里?它仍然是“c:\Program Files”吗?如果是这样,应用程序是否需要管理员权限才能写入该目录?这是漫游开始的地方吗?如果是这样,我如何防止应用程序写入特殊的每个用户漫游文件夹,而是让它写入 exe 所在的一个文件夹?
更新(重新措辞问题):
将应用程序(仅包含 exe 和一些额外文件的文件夹)部署到客户的 Windows 7 PC 的建议/首选/官方方法是什么,以便:
- 所有用户均可使用(每个人都可以双击该 exe 或其快捷方式)
- 该文件只有一个实例(不是每个用户都有一个副本)
- exe 可以读取和写入它所在的同一物理文件夹(这样,无论哪个用户正在运行该应用程序,它都会读取相同的文件)
- 运行 exe 时不会弹出要求特权权限的 UAC 对话框(exe 本身不会执行任何需要此操作的操作)
答案1
如果您希望所有用户都可以访问某个应用程序,则应将其安装在程序文件目录 (程序文件 (x86)(如适用)。
但是,除非以提升的权限启动(您不希望如此),否则应用程序将无法写入其安装的文件夹。无论如何,这样做都是一个坏主意。您永远都不应该这样做。
相反,您需要将用户特定的文件写入他们的配置文件文件夹。根据您的需要,您可以将数据写入漫游或本地用户数据文件夹。如果您不知道,那么请问自己应用程序在域环境中应该如何表现。通常,漫游配置文件(顾名思义)会随用户一起前往其他工作站。如果这对您的应用程序来说不合适,请使用本地配置文件。
如果您确实需要所有用户都能够读取和写入的共享数据,那么就不要将其放在安装目录中(用于写入)。启动应用程序时,检查该文件是否存在于应用程序的本地配置文件中民众用户。如果没有,请将文件从您的安装目录复制到那里,然后使用那里的副本。
答案2
将应用程序(仅包含 exe 和一些额外文件的文件夹)部署到客户的 Windows 7 PC 的建议/首选/官方方法是什么,以便:
建议/首选/官方方法不是您想要做的。安装所有用户都可以访问的 32 位程序的首选方法是安装到 32 位 Program Files 文件夹中。指导原则是任何应用程序数据都应写入该文件夹CommonAppDataFolder
。
您的要求与官方指南相矛盾,您应该重新考虑您的要求。以下是 Microsoft 的官方指南:
答案3
在这种情况下,最好不要使用C:\Program Files
或
C:\Program Files (x86)
32 位程序,因为这些文件夹具有特殊的权限。
将应用程序复制到其他文件夹并授予用户组该文件夹的所有必要权限要简单得多。
创建该 exe 的快捷方式非常简单,您可以执行以下操作之一:
- 留在目录中
- 复制到用户桌面
- 放到用户的“开始”菜单上
- 复制到通常在 中找到的所有用户的“开始”菜单
C:\ProgramData\Microsoft\Windows\Start Menu
。
最后一个选项可能是最简单的。
答案4
您可以将其保留在 中C:\Program Files
,只需更改程序文件夹的权限,以在 ACL 中为其他用户提供适当的访问权限。您需要关闭从父文件夹的继承,并手动添加用户“Everyone”,并赋予您希望每个人都拥有的权限。