我们有一个遗留服务运行,它负责监视另一个服务,但也启动一个控制台应用程序(用C编写),它继续在后台运行。如果我们从cmd提示符启动控制台应用程序,它可以正常工作。如果我们也在网络服务帐户下启动服务,它也会启动控制台应用程序,但在这种情况下,它无法启动其他服务。
因此,由于服务必须监视(启动/停止)另一个服务,因此必须在本地系统帐户下启动它以获得必要的权限 - 但问题是此服务启动的控制台应用程序无法从appdata文件夹中读取其配置。
我可以看到控制台应用程序将APPDATA文件夹作为C:\Windows\System32\config\systemprofile\AppData\Roaming
获取,但应用程序指出无法找到此文件夹中的配置文件,因此它会自行关闭。当我从普通用户帐户启动它时,它会转到此用户的appdata文件夹并正常运行。我甚至尝试给Users
组在systemprofile\AppData\Roaming
文件夹中的文件夹附加权限(这没有意义,因为该应用程序作为本地系统运行),但它没有帮助。