Windows 7下是否存在标准公共目录,所有用户都具有对数据的完全控制访问权限?我们在Win 7下有一个应用程序,它运行在需要编写日志文件以进行调试的特殊工作站上。该应用程序是用Java编写的,并使用logback进行记录。
我正在撕裂我的头发而不是控制这些工作站上的任何东西。我们要求为我们的日志文件目录授予所有用户完全控制权,也许他们这样做,可能他们没有,但随后“策略”被应用,应用程序无法根据需要写入/删除/重命名日志文件。我一遍又一遍地围着这块。
我并不担心恶意活动。组策略ALREADY阻止用户使用Windows资源管理器,Office,命令行,IE或我们的应用程序以外的任何其他内容。他们不能做任何不受我们程序控制的事情。但我无法达到一种情况,我知道日志记录将始终按照我希望的方式运行。如果一个人登录到机器然后其他人这样做,那么文件“所有权”的问题会阻碍程序执行它需要做的事情。
所以我的问题是有一个目录 - 默认情况下 - 始终对任何正在登录的用户开放 - 运行编写,删除和重命名文件的程序,而不管最初创建它们的用户是什么?
更新:(回应Remy Lebeau的回答)
雷米,在下面的评论中,指出了我正在寻找的东西。但是,有两个问题。
更重要的是,我尝试了这个,但在我的情况下它不起作用。在cmd窗口中,我可以进入此目录,并显然将文件复制到其中。 (复制命令说它成功了,但是dir命令没有显示它),而我,我自己的具有管理员权限的PC上的用户无法在Windows资源管理器中查看该目录。关于这一点,出现了两个问题:
一个。这种奇怪的Windows行为是怎样的,其中用户显然缺乏执行权限的操作(例如,文件副本)有时似乎成功(继续没有可见错误)但操作实际上并未完成。
湾所有这些问题是否是我公司制定的限制性较强的组策略而不是“正常”的结果,这会阻止这些Microsoft记录的目录按照记录的方式运行?如何查看组策略,以便我可以智能地向管理这些策略的人员请求一些帮助?
答案 0 :(得分:0)
如果您需要在多个用户帐户之间共享文件,请在CSIDL_COMMON_APPDATA
文件夹(Vista +上的FOLDERID_ProgramData
)下创建一个子文件夹,并根据需要操作该子文件夹中的文件。
如果您只需要为当前登录用户处理文件,请在CSIDL_APPDATA
(漫游)或CSIDL_LOCAL_APPDATA
(非漫游)文件夹(或{{3})下创建一个子文件夹和Vista +上的FOLDERID_RoamingAppData
,并根据需要操作该子文件夹中的文件。
您可以使用FOLDERID_LocalAppData
或相关功能(或Vista +上的SHGetFolderPath()
)来检索此类特殊文件夹的实际路径,因为它们的默认位置因操作系统版本而异,并且可以是用户通过注册表编辑进一步定制。