我有一个由 Windows 服务启动的可执行文件,该程序将在客户计算机上运行,并且需要连接到远程共享以执行特定任务。此共享由客户通过 UI 指定,因此我们事先不知道这意味着它不能“硬编码”或预先映射的共享。
以前我们要求客户登录他们的机器并在登录时运行可执行文件,但我们一直希望让我们的程序在服务中运行而不需要登录,主要是为了让客户更容易并防止任何意外注销关闭我们的软件。所以这也意味着我们不知道客户机器上存在哪些本地用户帐户,因此我们必须使用本地系统帐户启动服务。
如上所述,我们现在有一个包装服务来启动可执行文件并执行各种任务。在大多数情况下,这似乎工作正常,并且可以正常访问底层网络 - 我们的软件的目的主要涉及捕获数据包等。
但是,当软件尝试连接到 Windows 共享(UNC 名称)时,它无法连接。而如果可执行文件是手动启动的,它连接得很好。
我通常看到的解决此类问题的建议似乎都说使用用户帐户,因为系统帐户无法访问网络共享,但在我们的情况下这是不可能的。我们还有其他方法可以让它工作吗?
编辑:我忘了提到这个应用程序可以(并且最常见的是)在 Win2K 而不是 XP 上运行,我认为我说本地网络帐户在 XP 之前不可用是正确的?