问题陈述:
假设本地网络中有20台Windows机器。其中一台机器用作服务器并托管数据库。现在,其他19台机器可以从服务器机器读取,但服务器机器没有其他19台机器的任何用户名和密码。
我必须更新安装在所有机器上的桌面应用程序。有一个spring-boot应用程序,托管在服务器机器上,用于下载构建。现在,只要我下载构建,我就必须通知所有其他19台已经下载的机器,以便他们可以自己阅读和更新。
是否还有其他最佳解决方案可以通知客户?
注意:我们不能使用RDP,也没有凭据,但我们可以在其他19个客户端上使用已部署的Windows应用程序。
解决方案3:如果您的计算机共享同一个域,请使用msi安装包to update software all across domain by using Group Policy。这是常见的方式。
解决方案4:直接从服务器共享文件夹启动桌面应用程它工作正常,而服务器机器始终可访问,应用程序对您的LAN来说不是太重。
在客户端计算机上运行时,您需要注意编写新的应用程序文件。好的方法是为不同的版本保留不同的文件夹,并使用指向最新版本的快捷方式启动:
v1.3\app files here
v1.4\app files here
v1.4.6\app files here
v1.7\app files here
app.lnk → v1.7\app.exe
客户端计算机使用app.lnk启动应用程序。
更新:如果您在没人工作时更新应用程序(请参阅凌晨1点到凌晨2点),您可以省略所有这些版本控制的东西。
解决方案1:它也可以。您可以使用NSSM轻松启动更新脚本或exe文件作为Windows服务。
我会使用Windows服务或计划任务(两者可能是您提供的相同应用程序,但有一些参数)。它经常检查是否有新版本(可能每天只有一次)。
如果您只需要在所有计算机上安装新版本的时间很短,那么您还可以使用新版本提供安装日期。 (也许检查将通过REST api完成,其中客户端发送当前安装的版本号,服务器以状态代码200回答并且正文为空或提供包含新版本号的json对象,截止日期和下载网址。)
然后,客户端可以下载新版本并使其在计算机上可用,但只有在到达截止日期时才触发安装。对截止日期的这种检查可能更频繁地发生,因为所有信息已经在客户端机器上并且可以在本地完成。