有一个Windows服务有时重新安装。
我需要一个用户能够启动/停止/重新启动此服务。 此用户不是pipe理员,不应该是。
如果我使用setacl.exe比它的工作,甚至我可以使用sc sdset ,但服务得到重新安装后setacl需要再次调用,但重新安装服务的过程没有权限运行setacl。
有没有办法让一个特定的用户有权重新启动一个特定的服务,甚至所有的服务,通过服务重新安装持续?
如果我能够给用户一些“pipe理服务”的一般权限也是可以的,但我无法确定这个所需的确切权限(如果我把用户添加到pipe理员组中,他可以开始/停止服务,但可以 – 显然 – 做比这更多)。
既然您已经了解SetACL,以及如何使用它来允许用户控制服务,您可以简单地使用计划任务来定期运行SetACL。
在重新安装之后,将该任务configuration为以小的时间间隔重复,因为用户无法控制服务的最长可接受时间。
正如你所说,这是一种哈克,)。
正如亚当所说,另一种select是使用GPO来执行ACL。
对于非标准的Windows服务,您必须在安装服务的计算机上安装并运行组pipe理控制台 。 然后执行以下操作:
重新启动服务的权限相当简单,您可以使用Subinacl.exe / service来分配权限,例如:subinacl / service MyServiceName / GRANT = NTDOMAIN \ BOB = STOPI。 STOP =查询状态,T = sTart,O = stOp,P =暂停/继续,I =询问。 完整列表: http : //support.microsoft.com/kb/288129
我想,你所遇到的问题是,当MyServiceName被删除时,ACL将随之删除。
您可以通过使用组策略或安全模板来解决此问题,以分配可能存在或不存在的服务的权限。