Win2008:SC SDSET – 如何授予特定的本地用户权限来停止和启动特定的本地服务?

哪里是一个有用的参考sdset命令?

我可以阅读和阅读,我还没有find一个简单的步骤列表说:

服务:应用程序
用户:乔

授予乔开始/停止/重新启动到应用程序

(为什么不能那么简单?)

注意 :获取sdset错误会导致服务从服务pipe理器中消失,只有root / system可见(pipe理员不可见)。 获得这个权利是重要的。

有人在这里解释了它的所有荣耀:

http://msmvps.com/blogs/erikr/archive/2007/09/26/set-permissions-on-a-specific-service-windows.aspx

本质上,你可以使用像Sysinternals PSGETSID这样的东西来获取安全主体的SID,并将要与sc sdset一起使用的SDDLstring拼凑在一起。

如果您担心它横向移动,则应该导出registry项的备份副本:

HKLM\SYSTEM\CurrentControlSet\services\<service> 

不知道你是否仍然在这里寻找帮助。 我有一段时间没有这样做。 我们摆脱了委托服务控制的做法,现在只是让我们的一些应用程序所有者本地pipe理员。

您可以使用Subinacl来修改服务权限:

 subinacl /service SERVICE_NAME /grant=DOMAIN\GROUP=F 

使用真正的服务名称(通常没有空格),而不是显示名称(通常有空格)

如果SC命令对服务进行了完全控制,则SC命令只能用于远程服务控制。 下面列出了可委派的所有权限。

  F : Full Control R : Generic Read W : Generic Write X : Generic eXecute L : Read controL Q : Query Service Configuration S : Query Service Status E : Enumerate Dependent Services C : Service Change Configuration T : Start Service O : Stop Service P : Pause/Continue Service I : Interrogate Service U : Service User-Defined Control Commands 

如果服务器是2003 SP1或更高版本,还有一个步骤允许远程控制服务:SP1更改了服务控制pipe理器上的默认ACL。 远程使用services.msc不适用于SP1版本的ACL。 将ACL更改回以允许使用以下命令远程服务启动停止。 它被封装在这里,但是应该作为单个命令input:sc sdset SCMANAGER D:(A ;; CCLCRPRC ;;; AU)(A ;; CCLCRPWPRC ;;; SY)(A ;; KA ;;; BA)S: (AU; FA; KA ;;; WD)(AU; OIIOFA; GA ;;; WD)

有关2003 SP1 ACL更改以及SDDL来自http://support.microsoft.com/?id=907460的更多信&#x606F;

修补程序,如果subinacl生成错误1783 http://support.microsoft.com/kb/827209

您可能需要为2008 R1 / R2服务器使用不同的SCMANAGER SDDL。