我们在许多客户站点上有一个遗留应用程序。 在某些情况下,客户端需要具有对Program Files(x86)文件夹下一个或两个文件夹的写入权限。
随着时间的推移越来越多的客户在服务器上启用UAC,所以我们现在遇到了一个简单的障碍。
我们可以使用正常的Windows /共享安全,但是他们仍然没有写权限。 事实上,作为本地pipe理员,我只能通过高级程序获得这些权限。
改变程序的位置(更大的任务)的缺点是有什么办法,我可以提供有限的用户,有限的文件夹的写访问,而开发努力改变程序的进展?
我知道我可以禁用VirtualStore,但我试图避免这一点。
没有重写程序,没有。 写入保护区(包括程序文件)需要提升,而不pipeNTFS ACL如何。
以下是触发UAC的操作列表 。
尝试configuration这些文件夹,以便它们具有授予运行该应用程序的帐户所属的组的必需访问权限。 而不是pipe理员组,因为这将需要提升,因为默认情况下,pipe理员组成员closures。
这不是特定于系统文件夹。 如果要尝试执行将文件复制到通过pipe理员组进行必需访问的文件夹的活动,则需要提boost度。 文件夹的位置并不重要。
另一种可能性是文件夹的完整性级别。 以中等或低完整性级别运行的进程将无法写入标记为高完整性级别的文件夹。 您可以使用Process Explorer查看icacls.exe的完整性级别以及进程/服务的完整性级别。
C:\>icacls . . BUILTIN\Administrators:(F) BUILTIN\Administrators:(OI)(CI)(IO)(F) NT AUTHORITY\SYSTEM:(F) NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(F) BUILTIN\Users:(OI)(CI)(RX) NT AUTHORITY\Authenticated Users:(OI)(CI)(IO)(M) NT AUTHORITY\Authenticated Users:(AD) Mandatory Label\High Mandatory Level:(OI)(NP)(IO)(NW)