如何使用Delphi更改服务的权限?

Mic*_*ick 2 delphi winapi

我已经编写了一个Windows服务,我希望管理员可以通过删除启动/停止它的权利来随意篡改它.

当然,管理员可以提升到SYSTEM并做任何他们想做的事情,甚至管理员仍然可以暂停服务的线程或删除服务,但这是为了防止随意篡改.

我可以很容易地使用Process Explorer来做到这一点(见下文),但我不知道从哪里开始使用Delphi.我浏览过SetAcl C++源代码(我可能会使用他们的OCX文件),但如果已经存在,我更喜欢使用原生的Delphi解决方案.如果没有,我将继续克隆SetAcl功能.

有没有人有这方面的经验,他们可以分享?

替代文字

注意:我曾在这篇文章中提倡用Delphi编写的屏幕捕获工具,我将其删除b/c它是无关的.我在这里留下这个注释,所以评论仍然有意义!问候.

War*_* P 8

管理员拥有自己的计算机权限,可以随心所欲地执行任何操作.您是否想要一种方法来更改管理员权限在计算机上的工作方式?

任何阻止管理员"篡改"其控制下的内容的软件听起来都像是rootkit或其他一些恶意软件.如果管理员想要关闭您的服务,您应该提供自己的快速工具来解决它,并且您不应该(也可能不能)阻止它们从Windows GUI或SC.EXE或NET STOP中阻止它们在命令行上.

话虽这么说,如果它是一个Windows API,你想要一个Delphi包装器,我会找到API的名称并搜索它的JEDI API库.看起来JWSCL会起作用.