我正在开发 Windows 服务应用程序,目前它以管理员权限运行。为此,我需要在服务登录设置中设置管理员信息。上面的 Windows 服务正在创建具有本地用户权限的子进程。这工作正常。
现在我想更改 Windows 服务应用程序以使用“本地系统”权限而不是管理员运行。但是,如果我将登录设置更改为“本地系统”,则子进程不会启动并抛出异常“访问被拒绝”。
我认为“本地系统”帐户具有执行任何操作的所有权限。它甚至比管理员帐户更强大。那为什么它不能启动子进程呢?
如果我的看法是错误的,请指导我
我正在开发 Windows 服务应用程序,目前它以管理员权限运行。为此,我需要在服务登录设置中设置管理员信息。上面的 Windows 服务正在创建具有本地用户权限的子进程。这工作正常。
现在我想更改 Windows 服务应用程序以使用“本地系统”权限而不是管理员运行。但是,如果我将登录设置更改为“本地系统”,则子进程不会启动并抛出异常“访问被拒绝”。
我认为“本地系统”帐户具有执行任何操作的所有权限。它甚至比管理员帐户更强大。那为什么它不能启动子进程呢?
如果我的看法是错误的,请指导我
本地系统当然没有“做任何事情的所有权限”。这意味着如果有人设法进入该过程......他们真的可以在系统上运行。
组策略编辑器将准确地告诉您谁可以做什么,因此您无需猜测自己的方式。
Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> User Rights Assignment
Obtain an impersonation token for another user in the same session.
我不是 100% 确定这是您需要的设置(我没有尝试过),但我认为它是。即使不是,请浏览此组策略部分,看看谁可以做什么。显然,您想要的设置不会在列表中包含“本地系统”;)
我希望这有帮助。:) 祝你好运!