0

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

起初,我无法写入网络驱动器,但通过以管理员帐户登录服务解决了这个问题。但是,我的老板希望程序运行时无需用户输入帐户的用户名和密码。

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

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

4

2 回答 2

1

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

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

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

fsmgmt.msc使用工具更容易从 UI 修改文件共享权限。

您将需要弄清楚需要应用的最小权限集。如果您根本不担心安全性,您可以授予完全权限,但这几乎总是矫枉过正,如果由于任何原因服务受到损害,您会更加敞开心扉。

于 2014-05-09T16:51:35.737 回答
0

我通过在安装时创建一个添加到管理员组的新用户来解决这个问题。这允许服务写入本地和网络驱动器,而在设置过程中不需要密码/用户名信息。

于 2014-05-09T20:06:20.110 回答