首页 > 代码库 > 设置Windows服务的访问权限

设置Windows服务的访问权限

作者:beyond

默认情况下,只有管理员组成员、LocalSystem和Power Users组成员帐户才有权启动、停止服务。为了让普通用户也可以控制该服务,我们可以手动设置其访问权限。可能有些初学者会感到奇怪,怎么服务也可以设置权限?其实在Windows系统里,不仅可以对文件夹设置权限,还可以对注册表、打印机和服务等系统资源进行权限设置。然而对服务进行权限设置,没有对文件夹进行权限设置那么直观,需要借助以下两种方法:

安全配置和分析

(1)以管理员身份登录系统,在运行对话框里输入mmc并回车打开控制台窗口,然后添加“安全配置和分析”管理单元。

(2)鼠标右键单击新添加的“安全配置和分析”管理单元,单击弹出菜单上的“打开数据库”菜单项,在打开的对话框里指定新建的安全数据库名称,例如可以是SrvACL,然后单击“打开”按钮。

(3)在随之打开的对话框上选择系统内置的安全模板文件,例如可以选择“setup security”模板。

(4)鼠标右键单击“安全配置和分析”管理单元,单击弹出菜单上的“立即分析计算机”菜单项,在弹出对话框上单击“确定”按钮即可开始分析当前计算机的安全配置。

(5)分析结束以后,单击左侧控制台树里的“系统服务”节点,在右侧的详细窗格里双击所需设置的服务名(本例是App Service)。

(6)在打开的属性对话框上勾选“在数据库中定义这个策略”复选框,然后单击“编辑安全设置”按钮。

(7)在打开的安全设置对话框上添加Users用户,然后确保勾选“启动停止和暂停”权限右侧的“允许”复选框,如图下所示。

        技术分享

(8)依次单击所有打开对话框上的“确定”按钮,然后鼠标右键单击“安全配置和分析”管理单元,单击弹出菜单上的“立即配置计算机”菜单项,即可用刚才定义的权限设置配置系统。

Subinacl命令工具

还可以借助Subinacl命令工具方便地查看和设置服务的权限配置,到以下微软官方网站下载其最新版本:

http://www.microsoft.com/downloads/details.aspx?FamilyId=E8BA3E56-D8FE-4A91-93CF-ED6985E3927B&displaylang=en

(1)以管理员身份登录系统,打开命令提示符窗口。

(2)在命令提示符下输入以下命令:

subinacl /service AppSrv /grant=users=top

要注意,subinacl只能接收服务名(ServiceName),而不是显示名称(DisplayName)。命令参数“grant=users=top”表示给Users组帐户赋予“启动、停止和暂停”AppSrv服务的权限,“top”中的t代表start(启动)权限、o代表stop(停止)权限、p代表pause(中止/继续)权限。

(3)接下来可以运行以下命令,查看AppSrv服务的权限设置:

subinacl /verbose=2 /service AppSrv /display=dacl

命令结果类似如下所示:

====================

+Service AppSrv

====================

/perm. ace count  =5

/pace =builtin\administrators       ACCESS_ALLOWED_ACE_TYPE-0x0

                SERVICE_ALL_ACCESS

……

/pace =builtin\users      ACCESS_ALLOWED_ACE_TYPE-0x0

                SERVICE_START-0x10            SERVICE_STOP-0x20             SERVICE_PAUSE_CONTINUE-0x40

注意 服务的登录身份指定了服务能够以多大的权限访问系统资源,而服务的访问权限则指定用户能够以多大权限控制该服务。

http://caizhixin75.blog.163.com/blog/static/1835107120071171136765/

设置Windows服务的访问权限