我希望能够让开发团队在Win2003服务器上安装服务。 他们已经可以通过RDP / FTP连接到有限的帐户,但我希望能够授予安装权限。
我怎么做,而不授予pipe理员权限?
(这些服务是使用.NET框架创build的,因此我们使用C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ installutil.exe进行安装)
授权安装服务将有点艰难。 有一个“SC_MANAGER_CREATE_SERVICE”权限,可以授予全局对象pipe理器中服务控制pipe理器(SCM)对象上的用户。
在直到Windows Server 2003的Windows版本中,无法在SCM上更改权限。 从W2K3 SP1开始,您可以更改SCM的权限。
更改安全性的API是SetServiceObjectSecurity ,更多信息可在此处获得: http : //msdn.microsoft.com/zh-cn/library/aa379589 ( VS.85) .aspx
还有一些参考资料:可以授予SCM的权限以及SCM上设置的默认DACL可以在这里find: http : //msdn.microsoft.com/en-us/library/ms685981(VS.85).aspx
总之,没有办法做这个没有写代码。 没有神奇的registry设置,等等。如果你可以让某人为你写代码,那么这是完全可行的。
我认为更大的问题是让开发团队访问他们不pipe理的服务器。 (SC_MANAGER_CREATE_SERVICE)不是试图授予用户权限(SC_MANAGER_CREATE_SERVICE),而是认真考虑给他们自己的盒子 – 即使只是一个虚拟机来testing,一旦他们说准备好了,一个实际的pipe理员应该把这些服务安装到生产系统中。
如果您创build了一个或多个服务,然后按照知识库中所述授予访问权限,那么您的开发人员可以停止该服务并复制新的二进制文件,以便即使必须先创build它们,也可以开发/debugging服务。
我个人将我们的开发人员限制在testing服务器上,授予他们pipe理员访问权限 如果没有先告诉我他们的东西正在工作,小宝贝不能访问我的现场服务器!
JR