无法使用 UNC 路径访问 Windows 共享

无法使用 UNC 路径访问 Windows 共享

我试图了解为什么作为本地系统帐户作为 Windows 服务运行的应用程序无法使用 UNC 路径访问另一台 PC 上的共享文件夹。

但同一个应用程序可以访问 NAS 设备上的共享文件夹。

更多详情:

我有一个 Java 应用程序,它根据 UNC 路径读取目录的内容。

当不作为 Windows 服务运行时,该应用程序可以读取其他 PC 以及 NAS 设备上的文件夹共享。

是不是因为 NAS 设备(Buffalo LinkStation)正在使用 SAMBA?(这超出了我的舒适区,但这是我唯一能想到的)

如果是这样,是否意味着我必须为该服务创建一个管理员用户才能使其正常工作,而不是本地系统帐户?

答案1

我怀疑NAS设备的共享已启用访客,或者计算机名称对该共享具有权限。

本地系统具有网络上计算机帐户的权限。(是的,用户和计算机都有 AD 帐户。)有关更多信息,请参阅此链接

是的,您需要将帐户 COMPUTERNAME$(无论机器名称如何)添加到共享中,以便应用程序能够访问它。

答案2

当不作为服务运行时,应用程序在启动应用程序的用户上下文中运行,并将具有用户拥有的 Windows 共享中的文件和文件夹的任何共享和 NTFS 访问权限。当作为本地系统服务运行时,应用程序将具有运行服务的计算机帐户对 Windows 共享中的文件和文件夹的任何共享和 NTFS 访问权限,因此您需要为运行服务的计算机的计算机帐户添加对 Windows 共享中的文件和文件夹的适当共享和 NTFS 权限。

相关内容