我们有一个正在运行的旧服务,该服务负责监视另一个服务,但是还启动了一个控制台应用程序(用C编写),该应用程序继续在后台运行。如果我们从cmd提示符启动控制台应用程序,则可以正常运行。如果我们也以“网络服务”帐户启动该服务,则它也可以正常启动控制台应用程序,但在这种情况下,它无法启动其他服务。
因此,由于该服务必须监视(启动/停止)另一项服务,因此必须在本地系统帐户下启动该服务才能获得必要的特权-但是问题在于,由该服务启动的控制台应用程序无法从该服务读取其配置appdata文件夹。
我可以看到控制台应用程序将APPDATA文件夹获取为C:\Windows\System32\config\systemprofile\AppData\Roaming
,但是该应用程序指出找不到该文件夹中的配置文件,因此它会自行关闭。当我从普通用户帐户启动它时,它将转到该用户的appdata文件夹并正常工作。我什至尝试为Users
组的systemprofile\AppData\Roaming
文件夹中的文件夹授予其他权限(这没有意义,因为该应用程序以本地系统运行),但这没有帮助。 / p>
使此控制台应用程序从“本地系统”应用程序数据文件夹中读取设置的最佳方法是什么?
或者,是否可以授予这一项服务权限以启动其他服务,而无需以本地系统身份启动它?