由作为本地系统运行的服务启动的应用程序权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了由作为本地系统运行的服务启动的应用程序权限相关的知识,希望对你有一定的参考价值。

我们有一个遗留服务运行,它负责监视另一个服务,但也启动一个控制台应用程序(用C编写),它继续在后台运行。如果我们从cmd提示符启动控制台应用程序,它可以正常工作。如果我们也在网络服务帐户下启动服务,它也会启动控制台应用程序,但在这种情况下,它无法启动其他服务。

因此,由于服务必须监视(启动/停止)另一个服务,因此必须在本地系统帐户下启动它以获得必要的权限 - 但问题是此服务启动的控制台应用程序无法从appdata文件夹中读取其配置。

我可以看到控制台应用程序将APPDATA文件夹作为C:WindowsSystem32configsystemprofileAppDataRoaming获取,但应用程序指出无法找到此文件夹中的配置文件,因此它会自行关闭。当我从普通用户帐户启动它时,它会转到此用户的appdata文件夹并正常运行。我甚至尝试给Users组在systemprofileAppDataRoaming文件夹中的文件夹附加权限(这没有意义,因为该应用程序作为本地系统运行),但它没有帮助。

  1. 使此控制台应用程序从Local System appdata文件夹中读取设置的最佳方法是什么?
  2. 或者,是否可以授予此单个服务权限以启动其他服务,而无需将其作为本地系统启动?
答案

如果我们从cmd提示符启动控制台应用程序,它可以正常工作。

这意味着您登录的帐户有足够的权限来执行您需要的所有操作。在服务的“登录”选项卡上指定该帐户,您应该好好去!

enter image description here

以上是关于由作为本地系统运行的服务启动的应用程序权限的主要内容,如果未能解决你的问题,请参考以下文章

为啥“本地系统”帐户缺乏对 NTFS 文件系统的权限(将 java 作为 Windows 服务运行)

系统启动流程,服务程序自动,文件目录权限运行

Wix 安装程序:验证您是不是有足够的权限来启动系统服务

SC实现隐藏Windows服务维持权限

用C#写了一个控制台程序,如何让它作为服务来运行

作为域帐户运行 Windows 服务所需的最低权限 [关闭]