2012-03-28 23 views
3

我需要使用本地系统用户访问带有Windows服务的共享资源。我尝试了类UserImpersonation,但它只适用于调试。当我安装我的服务时,我无法访问共享文件夹。如何使用本地系统用户访问使用Windows服务的共享资源?

我已阅读关于此主题,我想知道是否唯一的方法是创建一个用户与网络凭据并执行与该用户的服务。

+0

你可以找到许多资源处理这个http://stackoverflow.com/questions/6016388/accessing-shared-folder-over-a-network-in-windows-service http:// serverfault .com/questions/135867/howt-to-grant-network-access-to-localsystem-account – JotaBe 2012-03-28 10:12:45

回答

1

您问题的最后一段包含答案。该服务在特定用户的上下文中运行。您需要确保该用户可以访问有问题的资源。出于这个原因,专门为特定服务创建专用用户并不罕见。

+0

为什么不使用网络服务? – JotaBe 2012-03-28 10:16:47

+0

@JotaBe因为它不能访问共享资源,除非明确授予。 – 2012-03-28 10:19:45

+0

当然,它不会有权限,但直到您授予它们。但是,一旦将权限授予网络资源中的计算机帐户,运行在网络服务帐户下的服务将能够访问资源。我认为网络服务更安全,因为没有用户可以使用该帐户登录,并且需要较少的维护,因为您不必使用密码。 – JotaBe 2012-03-28 10:24:10

2

您可以让服务在您为其调配网络访问权限的帐户下运行(不一定像截图中的NetworkService)。要做到这一点,去你的服务经理,并用鼠标右键单击属性:

enter image description here

有两种类型的权限你有访问网络共享,您必须确保当考虑到帐户你使用有:Share and NTFS permissions

+0

@DavidHeffernan,网络服务只是当我拿一个示例截图时配置的东西。我只是回答“作为用户执行”问题的一部分。我会澄清我的答案。 – Tung 2012-03-28 10:23:56

相关问题