首页 > 代码库 > 设置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服务的访问权限