2017-08-11 26 views
0

我有一个Windows服务,代表使用单独的前端用户界面配置服务的登录用户执行一些与网络相关的操作。 UI和Windows服务使用套接字接口进行通信,即,UI将命令发送到服务,并且服务将数据发送到UI以进行处理/显示。这种设置已经为我们工作了多年。针对LocalService的“访问被拒绝”的解决方法

最近,安全策略要求我们的Windows服务不能再运行为LocalSystem,而必须运行为LocalService。大多数情况下,这是一个平稳的变化。但是...

Windows服务功能的一部分是在用户指定的位置创建日志文件并将数据写入该日志文件,直到用户告诉其停止。如果用户在C:\级别指定目录(例如,C:\MyLogs),则Windows服务工作正常。但是,如果用户指定在她的我的文档文件夹的目录(例如,C:\Users\<username>\Documents\MyLogs),Windows服务失败,一个System.UnauthorizedAccessException

访问<位置>被拒绝。

我花了一段时间,但我终于明白,Windows服务运行的本地服务没有访问登录的用户的配置文件文件夹,例如,我的文档,应用程序数据等

有没有解决方法?

有几个选项可以想到,但由于我对Windows安全性不够熟练,因为我不确定要搜索什么,所以我的Google忍者技能非常弱。以下是我的一些具体问题。我将不胜感激任何社区可以提供的指导。

  1. 有没有办法使Windows服务模拟登录用户帐户,以便它可以创建目录和文件,就好像用户直接进行操作一样?
  2. 是否可以向用户的配置文件文件夹添加权限,以便LocalService帐户可以在其中创建目录和文件?

回答

0

是的,您可以添加权限到文件夹。右击文件夹|属性|安全|编辑|添加...

在“输入对象名称”文本框中输入“本地服务”,点击检查名称和确定和修改权限的本地服务帐户/

enter image description here

相关问题