0

在 Windows 7 下是否有一个标准的公共目录,所有用户都可以完全控制访问来写入数据?我们有一个在 Win 7 下运行的应用程序,它在需要编写日志文件进行调试的特殊工作站上运行。该应用程序是用 Java 编写的,并使用 logback 进行日志记录。

由于无法控制这些工作站上的任何东西,我感到非常恼火。我们要求为我们的日志文件目录授予所有用户完全控制权,也许他们会这样做,也许他们不会,但随后“策略”被应用并且应用程序无法根据需要写入/删除/重命名日志文件。我一直在这个街区里一遍又一遍。

我不担心恶意活动。组策略已经阻止用户使用 Windows 资源管理器、Office、命令行、IE 或我们的应用程序以外的任何东西。他们不能做任何不受我们程序控制的事情。但是我无法达到我知道日志记录将始终按照我想要的方式运行的情况。如果一个人登录机器然后其他人登录,文件“所有权”问题会妨碍程序执行它需要执行的操作。

所以我的问题是有一个目录 - 默认情况下 - 总是对任何碰巧登录的用户开放 - 运行一个写入、删除和重命名文件的程序,而不管最初是哪个用户创建的?

更新:(响应雷米勒博的回答)

雷米在下面的评论中指出了我正在寻找的东西。但是,这样做有两个问题。

  1. 我说我们的应用程序是用 Java 编写的,因此据我所知,无法访问他的链接中提到的 API,因此据我所知,我们将被限制为硬编码路径,例如 C: \Documents and Settings\所有用户\应用程序数据。这不是一个炫耀,但不太理想。
  2. 更重要的是,我已经尝试过了,但在我的情况下它不起作用。在 cmd 窗口中,我可以 cd 进入该目录,并且显然将文件复制到其中。(复制命令说它成功了,但随后 dir 命令没有显示它),我,我自己的 PC 上具有管理员权限的用户,无法在 Windows 资源管理器中查看目录。关于这一点,出现了两个问题:

    一个。这种奇怪的 Windows 行为是怎么回事,其中用户显然缺乏执行权限的操作(例如,文件副本)有时似乎成功(继续进行而没有可见的错误),但操作实际上并未完成。

    湾。所有这些问题都是因为我的公司的组策略比“正常”更严格,这会阻止这些 Microsoft 记录的目录按记录运行吗?如何查看组策略,以便我可以明智地请求管理这些策略的人提供一些帮助?

4

1 回答 1

0

如果您需要在多个用户帐户之间共享文件,请在文件夹下创建一个子CSIDL_COMMON_APPDATA文件夹(FOLDERID_ProgramData在 Vista+ 上),并根据需要在该子文件夹中操作您的文件。

如果您只需要为当前登录用户处理文件,则在CSIDL_APPDATA(漫游)或CSIDL_LOCAL_APPDATA(非漫游)文件夹(或FOLDERID_RoamingAppDataVista FOLDERID_LocalAppData+ 上)下创建一个子文件夹,并根据需要操作该子文件夹中的文件。

您可以使用SHGetFolderPath()或相关功能(或SHGetKnownFolderPath()在 Vista+ 上)检索此类特殊文件夹的实际路径,因为它们的默认位置因操作系统版本而异,并且用户可以通过注册表编辑进一步自定义它们。

于 2013-10-23T22:15:47.367 回答