Windows Service和控制台应用程序之间共享的目录权限

时间:2012-08-03 12:36:44

标签: windows-services file-permissions user-accounts

我不确定这是否适合这样的问题(也许应放在SuperUser上?),但我会尝试。

我有一个C#控制台应用程序和一个Windows服务。两者都是相同的,但控制台应用程序之前创建并保持向后兼容性。其中每个都运行WCF服务,其方法对C:\ ProgramData \ MyApp中的文件进行操作。控制台应用程序以受限用户(非管理员)身份运行,Windows服务以NT AUTHORITY \ NETWORK SERVICE身份运行。当应用创建一些目录/文件时,服务无法删除它,反之亦然。

我想让它得到保障。我的问题是:我应该将C:\ ProgramData \ MyApp的完全权限授予NETWORK SERVICE和当前用户吗?或者我应该创建专用用户来运行服务/应用程序吗?

1 个答案:

答案 0 :(得分:1)

假设您的应用程序未对新创建的文件设置明确的安全权限,则授予网络服务帐户删除该文件夹的权限将解决您当前的问题。

此命令将完成工作:

icacls c:\ProgramData\MyApp /t /grant "NETWORK SERVICE":(OI)(CI)(IO)D

为您的其他用户服务帐户重复相同操作。