我们在许多客户站点上都有遗留应用程序。在某些情况下,客户需要对 Program Files (x86) 文件夹下的一个或两个文件夹具有写权限。
随着时间的推移,越来越多的客户端在服务器上启用 UAC,因此我们现在遇到了一个简单的障碍。
我们可以应用正常的窗口/共享安全,但他们仍然没有写入权限。事实上,作为本地管理员,我只能通过提升的程序才能获得该权限。
除了改变程序的位置(更大的任务)之外,是否有任何方法可以为有限的用户提供对有限文件夹的写访问权限,同时开发人员努力改变程序的进展?
我知道我可以禁用 VirtualStore,但我正尝试避免这种情况。
答案1
除非重写程序,否则不行。无论 NTFS ACL 如何,写入受保护区域(包括程序文件)都需要提升权限。
以下是列表触发 UAC 的操作。
答案2
尝试配置文件夹,使其具有授予运行应用程序的帐户所属组的所需访问权限。而不是管理员组,因为这需要提升权限,因为默认情况下管理员组成员身份是禁用的。
这并非特定于系统文件夹。如果您尝试将文件复制到您通过管理员组拥有所需访问权限的文件夹,则需要提升权限。文件夹位于何处并不重要。
另一种可能性是文件夹的完整性级别。在中或低完整性级别下运行的进程将无法写入标记为高完整性级别的文件夹。您可以使用 icacls.exe 查看完整性级别,并使用 Process Explorer 查看进程/服务的完整性级别。
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)