我正在尝试设置具有以下要求的 Windows 服务:
- 作为域帐户运行 - 此帐户有权访问该进程将触及的其他共享
- 在机器上拥有完全的管理权限,通过 UAC - 特别需要能够拥有文件夹的所有权
问题是该过程需要在某些时候取得文件夹的所有权,这是通过调用takeown /A /F <file>
. 这适用于命令行,但只有当它明确时Run as Administrator
-作为机器上的本地管理员并没有提供完整的管理员权限,并且该帐户仍然必须通过 UAC 提示符,所以当作为服务运行时,我们只是得到ERROR: The current logged on user does not have administrative privileges.
。似乎为服务帐户绕过 UAC 的标准方法是使用该Local System
帐户,但这不是一个选项,因为这样我们就无法访问其他服务器。
有没有办法设置服务并说“在机器上的完全管理员的上下文中以这个帐户运行”?作为另一种潜在的解决方案,有没有办法从机器上的 UAC 中排除域帐户?只要它作为服务运行,可以设置文件夹所有权并使用域帐户,任何其他解决方案都可以工作。理想情况下,这是在不打开大的安全漏洞的情况下完成的,比如在机器上完全禁用 UAC。