网络服务帐户不接受本地路径

时间:2014-05-08 21:33:47

标签: path windows-services user-accounts network-drive network-service

我正在创建一个作为服务运行的程序,并在白天的某些时间点创建数据库备份(使用pg_dump.exe)。该程序需要能够将备份文件写入本地驱动器和映射的网络驱动器。

起初,我无法写入网络驱动器,但通过以管理员帐户登录服务来解决问题。但是,我的老板希望程序在没有用户输入帐户的用户名和密码的情况下运行。

我试图通过使用网络服务帐户(不需要密码并且始终具有相同名称)解决此问题。现在我的程序将写入网络驱动器,但不是本地驱动器!我尝试使用常规的C:\<directory name>\路径语法以及\\<computer name>\C$\<directory name>\语法和\\<ip address>\C$\<directory name>\,但都没有。

有没有办法让网络服务帐户访问本地驱动器?

2 个答案:

答案 0 :(得分:1)

只要授予帐户访问这些文件/目录的权限,它就应该有效。要访问本地文件,需要调整文件和目录的ACL。要通过网络共享进行访问,您必须更改文件ACL以及网络共享权限。

可以使用标准icacls.exe在Exploler UI或命令行中修改文件ACL。例如。此命令行将为网络服务提供目录和所有文件的读取,写入和删除权限。

icacls c:\MyDirectory /T /grant "NT AUTHORITY\Network Service":(R,W,D)

使用fsmgmt.msc工具,可以更轻松地从UI修改文件共享权限。

您需要确定要应用的 minimal 权限集。如果您根本不担心安全问题,您可以提供完全权限,但它几乎总是一种过度杀伤,如果由于任何原因导致服务受到损害,您可以更多地打开它。

答案 1 :(得分:0)

我通过在安装时创建一个新用户来解决此问题,我将其添加到Administrators组。这允许服务写入本地和网络驱动器,而无需在安装过程中使用密码/用户名信息。