我希望能够允许开发团队在 Win2003 服务器上安装服务。他们已经可以通过 RDP/FTP 使用有限的帐户进行连接,但我希望能够授予安装权限。
在不授予管理员权限的情况下如何做到这一点?
(这些服务是使用 .NET 框架创建的,因此我们使用 C:\Windows\Microsoft.NET\Framework\v2.0.50727\installutil.exe 进行安装)
我希望能够允许开发团队在 Win2003 服务器上安装服务。他们已经可以通过 RDP/FTP 使用有限的帐户进行连接,但我希望能够授予安装权限。
在不授予管理员权限的情况下如何做到这一点?
(这些服务是使用 .NET 框架创建的,因此我们使用 C:\Windows\Microsoft.NET\Framework\v2.0.50727\installutil.exe 进行安装)
我认为更大的问题是让开发团队访问他们不管理的服务器。与其试图授予用户权限(SC_MANAGER_CREATE_SERVICE),不如认真考虑给他们自己的盒子——即使只是一个用于测试的虚拟机,一旦他们说它准备好了,实际的管理员应该将服务安装到生产系统中。
安装服务的授权许可会有点困难。在全局对象管理器中的服务控制管理器 (SCM) 对象上有一个“SC_MANAGER_CREATE_SERVICE”权限可以授予用户。
在 Windows Server 2003 之前的 Windows 版本中,无法更改 SCM 上的权限。从 W2K3 SP1 开始,您可以更改 SCM 上的权限。
更改安全性的 API 是SetServiceObjectSecurity,更多信息可在此处获得:http: //msdn.microsoft.com/en-us/library/aa379589 (VS.85).aspx
更多参考:可以授予 SCM 的权限以及在 SCM 上设置的默认 DACL 可在此处获得:http: //msdn.microsoft.com/en-us/library/ms685981 (VS.85).aspx
简而言之,如果不编写代码,就无法做到这一点。没有神奇的注册表设置等。但是,如果您可以让某人为您编写代码,那是完全可行的。
http://support.microsoft.com/?kbid=288129有一些关于管理服务的信息,但我认为这不能扩展到包括创建任意服务而无需在服务器上进行一些重大的安全更改。
如果您创建一个或多个服务,然后按照知识库中的说明授予访问权限,您的开发人员可以停止该服务并复制新的二进制文件,因此即使您必须首先创建服务,他们也可以开发/调试服务。
我个人将我们的开发人员限制在测试服务器上,并授予他们管理员访问权限。如果没有先说服我他们的东西可以正常工作,这些小宝贝就无法访问我的实时服务器!
JR