【发布时间】:2011-11-09 15:27:14
【问题描述】:
我遇到以下情况:我正在构建一个需要服务的应用程序。该服务有时会为用户创建文件和文件夹(它实际上接收文件,然后将其写入磁盘)。
我的问题如下:
如果“标准用户”(即非管理员)使用应用程序(包括服务),则该用户甚至无法读取服务创建的文件,因为他没有权限,因为它似乎(“访问被拒绝”)。但是管理员用户之后可以看到相同的文件。
如果服务正在为管理员用户在桌面上创建一个文件夹(我没有尝试使用像 C: 这样的目标),那么管理员用户甚至看不到该文件夹,因为权限 (该文件夹没有出现,但如果我在 cmd 中使用“dir”命令,它仍然会进入列表;而如果我停止服务,该文件夹会自动被删除 - 我不知道为什么)。但是,我尝试让服务在桌面上的一个文件夹中创建一个文件夹(之前我已经创建的文件夹),并且它工作正常。
所以我知道该服务的问题与它的安装/运行方式有关。目前,它在“LocalSystem”上(我尝试使用带有“LocalService”的 sc.exe 命令使用 cmd 安装它,但它无法识别“LocalService”)。
那么,有没有一种方法可以让我的服务创建文件和文件夹,供用户根据需要读取/写入它们?
如果是,请告诉我怎么做。
附:到目前为止,我已经使用了一个 .bat 文件来调用 sc.exe 来安装和启动服务。可以吗?
【问题讨论】:
-
我认为您只需直接在文件/文件夹上设置安全描述符。
标签: windows service installation