0

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

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

我可以看到控制台应用程序将 APPDATA 文件夹获取为C:\Windows\System32\config\systemprofile\AppData\Roaming,但应用程序声明无法找到此文件夹内的配置文件,因此它会自行关闭。当我从普通用户帐户启动它时,它会转到该用户的 appdata 文件夹并正常工作。我什至尝试为该Users组在文件夹中的文件夹授予额外权限systemprofile\AppData\Roaming(这没有意义,因为该应用程序作为本地系统运行),但它没有帮助。

  1. 使此控制台应用程序从本地系统 appdata 文件夹读取设置的最佳方法是什么?

  2. 或者,是否可以授予此单一服务权限以启动其他服务,而不将其作为本地系统启动?

4

1 回答 1

1

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

这意味着您登录的帐户有足够的权限来做您需要的一切。在服务的“登录”选项卡上指定该帐户,您应该一切顺利!

在此处输入图像描述

于 2018-09-10T12:53:40.200 回答