最近有个项目,以c/s架构开发,客户端需要部署到50多台客户机上。但是软件的维护管理(包括安装、更新等)都由一个人来做,此人也不希望客户端程序自己悄悄更新。所以必须设计一种软件远程批量安装和更新的方案,来支持用户提出的这种需求。
问了一下度娘,发现PSTools这个工具非常好用。于是决定试一试。
思路其实很简单,以一台机器作为管理机,将需要更新的程序、文件及更新工具放在管理机上。管理员从管理机上远程控制其他客户机,依次在每台客户机上安装或更新软件。人工操作的方式就是一台台的通过远程桌面连接来进行。而我采用的办法只是将人工操作改为了通过脚本来自动实现。
远程安装或更新的步骤如下:
1)将管理机上放置待更新程序和文件的文件夹设置为共享文件夹。
2)从管理机共享文件夹中拷贝待更新程序和文件到远程客户机的指定位置上。
3)杀掉远程客户机上老的程序。
4)备份远程客户机上老程序的个性化配置文件。
5)删除远程客户机上老程序的安装目录。
6)在远程客户机上静默安装新的客户端程序。
7)还原远程客户机的个性化配置文件。
8)启动远程客户机上的客户端程序。
PsTools是一个工具集,包含了多个工具,此处只用到了其中的psexec.exe。该工具的主要使用命令如下:
psexec.exe \\remoteip -u username -p password -c file
其中,file必须是可执行文件,可以是脚本,可以是安装程序。