![访问存储在网络驱动器中的应用程序是否存在问题](https://linux22.com/image/1542439/%E8%AE%BF%E9%97%AE%E5%AD%98%E5%82%A8%E5%9C%A8%E7%BD%91%E7%BB%9C%E9%A9%B1%E5%8A%A8%E5%99%A8%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8%E9%97%AE%E9%A2%98.png)
我有一个 .exe 应用程序文件,计划将其存储在许多计算机都可以访问的网络驱动器中。该应用程序的目的是检索有关运行它的计算机的信息。
我们的想法是,如果需要进行更改,只保留 1 个应用程序副本,因此,我们不必在 X 台计算机上更新同一个应用程序,而只需更新网络驱动器中的应用程序,然后每个人都可以看到这些更改。
此申请不得已安装在网络驱动器中,不需要安装,只需存储文件以便可以执行即可。
然后,每台计算机都必须有一个计划任务来在特定时刻运行该应用程序,并使用驱动器自己的 IP 作为文件地址的一部分。
我的问题是,访问该应用程序会出现什么问题吗?
我自己尝试过这个并且它似乎有效,尽管我仍然不确定如果多个用户试图同时执行它或者至少在彼此非常接近的时间执行它时它会如何工作。
此外,网络驱动器需要用户和密码访问,但是对于需要存储或检索文件的任何用户来说,这都是一样的,具有所有权限,通常此连接已经打开,但可能存在用户需要登录的情况,那么计划任务是否将无法访问应用程序,或者它只会要求输入登录凭据,如果是,是否可以将它们添加到计划任务参数中?
此问题针对的是 Windows 7 和 Windows 10。
答案1
如果客户端正在制作可执行文件的临时副本,则应该受到保护。
答案2
由于该程序不需要安装,只要程序只读取数据,这样的设置就不会有问题,当程序执行时,它们的文件会以共享读取的方式打开,就这一点而言,这与从本地磁盘在计算机中启动多个副本相同(但磁盘可能随时消失:-)。
唯一的问题(除了网络中断)是如果程序更新文件并且多个用户同时启动该程序,但这在本地磁盘中也会出现问题。
一位同事为一些客户维护了一个使用类似方案的第三方遗留应用程序,并且它运行良好,在安装时,他在服务器上设置一个共享文件夹(如果客户端没有服务器,则在大多数时间运行的计算机中设置),其余计算机执行该程序并从共享中读取数据。
此外,我的建议是在每台计算机上映射一个网络驱动器,而不是直接使用网络路径,虽然工作量有点大,但也有一些优点:
一些程序对网络路径感到困惑,因为它们期望路径开头有一个驱动器号。
创建网络驱动器时,您可以指定用于访问网络共享的用户和密码,并且保证每次都会保存和使用。当您从 Explorer 访问共享并选中保存凭据的选项时,它通常会起作用,但有时凭据会“丢失”,您必须重新输入它们(我在几台计算机上遇到过这种情况,但我仍然不知道是什么让 Windows 丢弃了保存的凭据)。
如果网络共享的凭据发生变化,您只需使用新凭据重新创建驱动器,而不是查找凭据存储的位置(因为它在几乎每个版本的 Windows 中的位置都会发生变化)并在列表中搜索旧凭据,如果您保存了大量凭据,这会有点麻烦。
最后,当您设置计划任务时,您应该将其配置为使用已创建网络驱动器或已保存凭据的帐户运行,因为它们都是每次登录时保存的。如果您使用其他帐户,则需要输入凭据或创建使用该帐户登录的网络驱动器。