windows虚拟机批量安装程序
2013年11月01日 11:28
需要在几百台虚拟机上部署开发好的监测软件,运维人员表示手工操作要崩溃的。我想应该有一种方法可以实现自动安装,调研一下,要做到自动安装,需要以下几个条件。
1. psTools工具包,可以远程执行命令
2. 安装包需要支持静默安装
3. 需要通过命令行下载安装包
psexec.exe可以远程执行命令,提供远程windows虚拟机的ip和具有管理员权限的用户名和密码,就可以远程执行本地命令。
1 | psexec.exe \\ip_addr -u username -p password -c -w C:\ runupdate.bat |
使用nsis制作安装包,使用/S参数时,nsis安装包会静默安装,在脚本中安装完成的地方加入
Exec “第一个启动文件”
在静默安装完成后,就立即启动。
使用http下载文件,将安装包放置于linux主机的web目录下,使用网上分享的bat支持http下载脚本即可,需要注意windows不区分大小写,文件名全部用小写防止出错。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | echo=1/*>nul&@cls @ echo off c: C:\installer.exe /S if %ERRORLEVEL% NEQ 0 goto failed echo "installer updated DONE!" cd .. echo %computername% %date% %time% >> ComputerList.txt echo "Updating of installer succeeded. " goto end :faile echo $%computername% %date% %time% >> ComputerList.txt echo "Updating of installer failed. " :end c: pause goto :eof ::-----------------下面是函数定义区域----------------- :http echo Source: "%~1" echo Destination: "%~f2" echo Start downloading. . . cscript -nologo -e:jscript "%~f0" "%~1" "%~2" echo OK! goto :eof */ var iLocal,i Remote,xPost,sGet; iLocal =WScript.Arguments(1); i Remote = WScript.Arguments(0); iLocal=iLocal.toLowerCase(); i Remote=iRemote.toLowerCase(); xPost = new ActiveXObject( "Microsoft" +String.fromCharCode(0x2e)+ "XMLHTTP" ); xPost.Open( "GET" ,i Remote,0); xPost.Send(); sGet = new ActiveXObject( "ADODB" +String.fromCharCode(0x2e)+ "Stream" ); sGet. Mode = 3; sGet. Type = 1; sGet.Open(); sGet.Write(xPost.responseBody); sGet.SaveToFile(iLocal,2); |
本文参考:
http://blog.csdn.net/cneducation/article/details/3997166
下载脚本参考: