我有一个永远不应该停止的服务,并且正在寻找不同的方法来防止停止该进程。这是一个连接到 Active Directory 的托管环境。
是否有任何基于 Windows 的技术或 McAfee EPO 解决方案可以帮助防止进程停止(或在停止后重新启动)
该服务正在作为 LocalSystem 运行
答案1
每个服务都可以被保护以允许对其进行某些操作,例如启动和停止。
要显示服务使用的权限:
sc.exe sdshow servicename
它显示了一些相当神秘的东西,例如:
D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)(A;;CC;;;AC)
您现在可以使用它sc.exe sdset...
来更改权限,但您需要理解/学习这个安全描述符语言。
当我需要快速更改服务权限时,我宁愿使用进程黑客,它为您提供了一个 GUI 选项来设置服务权限,选择选项Services
卡,找到您的服务,然后在属性选项卡上Security
您可以删除管理员的权限。
我会确保至少一个用户/组仍具有该服务的完全访问权限。此外,本地系统通常应保留其权限,否则系统/服务控制管理器将无法再管理该服务。
如果没有权限的管理员想要停止该服务,他/她仍然可以在本地系统下启动一个进程,然后停止该服务,我认为你无法阻止这种情况。
这也与启动和停止服务有关,即使管理员没有该服务本身的权限,他/她仍然可以终止该服务的进程。
最好的选择是拥有尽可能少的管理员,并使用类似“Just-Enough-Administration”之类的方法来限制人们可以做的事情。
答案2
为什么不尝试将进程作为服务运行?服务不应该被停止。
答案3
只有管理员可以停止由其他用户(或系统)创建的进程。
限制管理员权限,用户将无法终止进程,否则您将不得不尝试阻止很多事情(终止进程,停止服务......)