如何授予用户管理 Windows 2000 中的服务的权限

文章翻译 文章翻译
文章编号: 288129 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本文介绍几种授权用户管理 Windows 2000 中的服务的方法。 在 Windows 2000 中,默认情况下只有管理员和超级用户才能启动、停止或暂停服务。本文介绍向其他用户和组授予这些权限的方法。

方法 1:授予使用组策略的权限

可以通过应用组策略向用户授予这些权限。有关如何完成此操作的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256345 如何配置组策略以设置系统服务安全
本文包含详细的分步说明。不过,本文没有明确说明本地组策略中没有相应的设置。

方法 2:授予使用安全模板的权限

该方法与方法 1 非常类似,但是它使用安全模板来更改系统服务的权限。为此,请按照下列步骤操作:
  1. 单击开始,单击运行,然后键入 MMC
  2. 控制台菜单上,单击添加/删除管理单元
  3. 单击添加
  4. 选择“安全配置和分析”管理单元,然后单击添加
  5. 单击关闭,然后单击确定
  6. 在 MMC 中,右键单击“安全配置和分析”项,然后单击打开数据库
  7. 为数据库指定名称,然后浏览至要存储该数据库的位置。
  8. 在出现提示时,选择要导入的安全模板。例如,“basicwk.inf”包含 Windows 2000 Professional 计算机上的标准设置的值。
  9. 在 MMC 中,右键单击“安全配置和分析”项,然后单击“立即分析计算机”选项。在出现提示时,选择日志文件的存放位置。
  10. 分析完成后,按如下方式配置服务权限:
    1. 在 MMC 中,双击系统服务分支。
    2. 右键单击要更改的服务,然后单击安全设置
    3. 单击编辑安全设置
    4. 根据需要添加用户帐户,并为每个帐户配置权限。默认情况下,用户会被授予“启动、停止和暂停”权限。
  11. 要将这些新设置应用到本地计算机,只须右键单击“安全配置和分析”项,然后单击立即配置计算机选项即可。

也可以将修改后的设置从 MMC 中导出并应用到使用Windows 2000 附带的 SECEDIT 命令行工具的多台计算机。有关使用 SECEDIT 的更多信息,请在命令提示符处键入以下命令:
secedit /?
注意:用这种方法应用这些设置将会重新应用模板中的所有设置,因此可能会覆盖由其他方法设置的其他文件、注册表或服务权限。

方法 3:授予使用 Subinacl.exe 的权限

分配用来管理服务的权限的最后一种方法是使用 Windows 2000 Resource Kit 中提供的 Subinacl.exe 实用工具。此实用工具的语法如下所示:
SUBINACL /SERVICE \\计算机名\服务名/GRANT=[域名\]用户名[=访问权限]

注意

  • 执行此命令的用户必须有管理员权限,才能成功完成此命令。
  • 如果省略“计算机名”,则采用本地计算机。
  • 如果省略“域名”,则在本地计算机上搜索帐户。
  • 尽管该语法示例列出了用户名,但它同样适用于用户组。
  • “访问权限”可以使用以下值:
    F:完全控制
    R:一般性读
    W:一般性写
    X:一般性执行
    L:读取控制
    Q:查询服务配置
    S:查询服务状态
    E:枚举从属服务
    C:提供配置更改
    T:启动服务
    O:停止服务
    P:暂停/继续服务
    I:询问服务
    U:提供用户定义的控制命令
    					
  • 如果省略“访问权限”,则采用“F(完全控制)”。
  • Subinacl 支持与文件、文件夹和注册表项有关的类似功能。有关更多信息,请参阅 Windows 2000 Resource Kit
  • 由于注册表中特定于服务的项中会使用服务名称,因此该名称应为“短名称”:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<ServiceName>
    如果服务名称包含空格,则应将整个参数用引号引起来。例如:
    "\\计算机名\包含空格的服务名称"

自动执行多项更改

在 Subinacl 没有可指定的选项时,您可以指定为给定计算机上的所有服务设置必需的访问权限。不过,以下示例脚本演示了一种方法,可对上述方法进行扩展以自动执行该任务:
strDomain   = Wscript.Arguments.Item(0)'domain where computer account is held
strComputer = Wscript.Arguments.Item(1)'computer netbios name
strSecPrinc = Wscript.Arguments.Item(2)'user's login name as in:DomainName\UserName
strAccess   = Wscript.Arguments.Item(3)'access granted, as per the list in the KB
 
'bind to the specified computer
set objTarget = GetObject("WinNT://" & strDomain & "/" & strComputer & ",computer")

'create a shell object.Needed to call subinacl later
set objCMD = CreateObject("Wscript.Shell")

'retrieve a list of services
objTarget.filter = Array("Service")

For each Service in objTarget
 
'call subinacl to se the permissions
command = "subinacl /service " & Service.name & " /grant=" & strSecPrinc & "=" & strAccess
objCMD.Run command, 0

'report the services that have been changed
Wscript.Echo "User rights changed for " & Service.name & " service"
next
				

注意

  • 应将该脚本另存为 .vbs 文件(如“Services.vbs”),并通过以下方法进行调用:
    CSRIPT Services.vbs 域名 计算机名 用户名 访问权限
    					
  • 如果不需要反馈信息,可注释掉或删除“Wscript.Echo ...”一行。
  • 此示例不执行错误检查,因此使用时要小心。
  • Windows 2000 Resource Kit 文档提到了另一种实用工具 (svcacls.exe),该工具执行与 Subinacl 一样的服务管理权限操作。这是一个文档编写错误。

参考

有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
269875 Windows 2000 Resource Kits 中不包含 SVCACLS.EXE

属性

文章编号: 288129 - 最后修改: 2004年6月17日 - 修订: 4.0
这篇文章中的信息适用于:
  • Microsoft Windows 2000 Service Pack 1
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Service Pack 1
关键字:?
kbhowtomaster kbenv KB288129
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com