Windows: 远程自动安装程序
问题的提出
作为一个技术支持人员,很有可能遇到这样的问题,你需要为一批计算机安装一个或多个软件更新,如果你有足够的权限和知识,可以使用组策略(Group
Policy)来迫使每台机器在下一次启动的时候自动从网络的一个共享处下载安装这个更新,这对于一个小型的企业或者计算机不多的情况根本不是问题,如果
是需要马上更新,大不了电话通知所有人重新启动机器。当然了对于大型企业等,肯定都装有微软的SMS等类似的软件,它可以提供更强大和更灵活的方式来远程
安装/更新等操作,而且有很好的跟踪功能,这样可以确保所有计算机都可以被更新。但是有时现实世界似乎并不那么顺利,比如可能你没有SMS类似的软件,或
者你根本没有足够的权限,而通过与系统管理员沟通,他们可能基于各种原因无法满足你的要求;或者受限于网络速度,这些计算机同时进行更新,可能造成网络拥
堵影响所有人的网络速度;或者可能这些计算机根本不是网络管理的,没有加入到一个AD/NT域等等各种原因,都有可能使你只好手动地,挨个操作每台机器:
告诉用户需要暂停工作,登录到管理员,安装,等待,必要的测试,登出,告诉用户可以工作了,当然了你可以使用远程管理软件实现上面的操作,但是依然要每台
机器地依次操作,人为等待也是必不可少的。这样的事情,如果是几台机器,还可以接受,如果是几十上百台,一是浪费时间,二是手动容易出错。
如果要是可以实现以下操作不是挺好:
在一台管理机器上远程发布软件运行命令到一台目标机器,这个命令发出后,它在该机器上自动运行直到结束,而无须管理人员的进一步干预,然后无须等待它的结
束,可以重复发布本操作到所有目标机器,当命令发布工作完成之后,就可以做别的工作了,估计安装都已经完毕,可以查看一下记录文件,看看是否有操作失败的
机器,如果有,重新尝试或者人工干预。这样不是既快捷又可以保证更新完成?
前提和准备
要想实现这样的快捷操作,要有以下几个前提:
1.
你要找到一个可以自动运行在silent/quiet安静模式下的安装包,这一点很重要。如果安装包是.msi的,那么Windows自带的安装程序就可
以支持/slient选项;有好多setup.exe的安装程序,也支持/quiet的不需要人工干预的安装选项。如果没有,你可以自己制作一个.msi
安装包,或者学习一下. 这是一个基本要求,因为无论你使用上述的何种自动安装方法,这样一个安装包都是前提条件。
2. 你要有一个Network Share,即便是没有服务器,一个Windows工作站也可以简单实现支持同时10个并发连接的网络共享.
3. 你要确保你有一个具有在目标机器上是管理员权限的帐户可用。
4. 你要有一点编辑制作Windows batch的知识.
5. 找到合适的程序,这个程序是微软官方的免费软件,是一个命令行程序,叫psexec.exe,它包含在PsTools包之内,你可以在这里下载,或者这里查看相关说明。
操作步骤实现
好了,我们下来就一步一步地实现这个操作。
首先明确几个感念:
目标机:就是需要程序运行安装的计算机。
管理机:也就是管理员操作的机器,管理员从这台机器发布命令到所有需要的目标机。
再说明一下,为了方便说明问题,假定上面说的那个程序psexec.exe存放在c:/目录下。
- 配置网络共享:
这一点不用细述了,网上好多资料可以使用.
为
了后面方便起见,我们假设服务器名是Server1, 共享名是Software, 而程序放置在目录Applications里面,
比如是安装Adobe Acrobat Reader
9.1的更新,我们把这个更新程序放在AdobeAcrobatReader子目录中,更新程序叫做AAR_Update91.exe.
这样安装程序的路径应该是://Server1/Software/Applications/AdobeAcrobatReader/AAR_Update91.exe
注意,上面的第三条中的那个具有管理员权限的帐户,一定要同时具有至少对Applications目录的写权限,因为我们要把运行情况记录写在这里。
- 把下面的批处理文件保存在管理机上,比如说叫做C:/runupdate.bat:
@echo off net use x: //Server1/Software/Applications/ x:
REM “Replace your codes starts from here” cd “AdobeAcrobatReader” AAR_UPDATE91.exe /sp- /silent /norestart REM “replace your codes end of here.” if %ERRORLEVEL% NEQ 0 goto failed echo "Adobe Acrobat Reader updated DONE!"
cd .. echo %computername% %date% %time% >> ComputerList.txt echo "Updating of Acrobat Reader succeeded. " goto end
:faile echo $%computername% %date% %time% >> ComputerList.txt echo "Updating of Acrobat Reader failed. "
:end c: net use x: /delete
|
- 这是关键的一步了,比如准备在目标机w001上运行安装程序,那么在管理机上进入Command Prompt, 然后输入下面的命令:
c:/psexec.exe //w001 -u <username> -p <password> -x –c –w c:/ c:/runupdate.bat |
其中, 把<username>替换成上面提到的那个具有目标机上管理权限的用户,<password>是那个用户的密码,如果你省略密码,程序在运行时会询问你,来输入隐藏方式的密码。
- 上面的程序会很快地结束运行,并提示一个PID给你,记住这个PID,以后测试跟踪可能用得上。然后,你就可以继续运行上面的命令,只不过是把机器名换一下,让下一台机器运行。
上面就是全部的过程和步骤。不过,你只是照搬上面的批处理文件很可能不能有效运行在你的环境中。前面说过,你要懂得一些批处理程序的编写。大家仔细看看上
面的批处理文件. 第2行的命令是将共享目录映射到本地的一个盘符,那里用到的是x:,
在你的环境中x:很有可能被用了,所以要找到一个在你的环境中没有用到的空闲的盘符.
至于跟踪程序运行结果,只要打开//Server1/Software/Applications/ComputerList.txt文件,那里是所有运
行了安装程序的机器的列表,其中计算机名前面带有$字符的是没有安装成功的,那么这些计算机需要你特殊照顾了,要不选定其它时间再次运行,要不选择手动安
装。无论如何,对于一个配置和管理良好的环境,应该来说会有很少的机会遇到自动安装失败的情况。当然了,会有其它情况造成安装失败。
问题和解决
在一个良好管理的企业环境中,确保同一个环境中的所有计算机都是基于同一个系统镜象,这是保证这个操作能够最大可能地成功运行,否则,这才是管理员的恶
梦。至于如何制作Windows系统的镜象,可以参考微软的官方文档和我的blog中关于Windows系统部署的文章
(http://blog.csdn.net/afatgoat).
其次,测试非常重要的步骤,当你制作或者得到一个现成的安装程序后,一定要在自己的环境中测试,选择目标机来在手动操作情况下是否能成功,是否有警告,安装完成后,是否达到了预期的目标,有没有遗漏等,比如要卸载的旧版本是不是成功卸载等等。
要使上面的自动安装过程顺利完成,最主要的技术问题就是,要保证安装过程不需要人工干预,否则,它会等待用户输入确认信息,而上面的运行方式是没有人机界面的程序运行方式,所以,Windows不会显示询问用户确认窗口, 最终导致安装不能成功.
如果希望监视或者测试,你可能希望通过上面提到的PID来获得程序运行的信息,在XP中最基本的命令是tasklist了,在Vista中可以看到PID。
参考:
http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
分享到:
相关推荐
命令行执行编译后的可执行文件,输入对应的参数,实现远程登录,并且程序自启动。(仅用于示例)
自动调用系统的远程桌面连接。适合于windows xp ,windows 2000,windows 2003操作系统
远程安装系统是一款简单实用的在线全自动重装WINDOWS操作系统软件,通过远程安装系统可以实现一键重装系统,免除你其他的操作,让系统重装变的简单。 远程安装系统基本简介 在线全自动重装WINDOWS操作系统,本...
代码里面的Default.rdp文件(和可执行程序在同一个目录)也可以远程连接Linux主机(需要把session bpp:i设置为24),如果是连windows主机的话可以把session bpp:i:设置成32。当然,也可以自己生成Default.rdp:打开...
3、如果新增或更换了本地盘符号,记得修改主程序:xcopydb小节中需要备份的数据路径 4、如何实现daemon?daemon是来做脚本监控的,如果使用win的计划任务可以不特别写监控脚本。如要自己实现,最好将脚本配置成后台...
简介:由于 RDP Wrapper 多年未更新,自带的配置文件不支持新版本的远程桌面服务。因此我们只需更新配置文件即可。 用途:一键解决 RDP Wrapper 提示 Not listening [not supported] 的问题。 使用方法:...
将此程 序复制到没有远程桌面的系统中并运行后,即可自动在系统中安装远程桌面连接程序。安装过程非常简单,连续点击“下一步”即可,当安装完成后,点击“开始→ 程序→附件→通讯→远程桌面连接”,便能登录网络...
Remote Desktop Organizer —— RDC(Remote Desktop Connection – 远程桌面)管理工具,对于经常需要远程登录到多台服务器的用户来说很实用。 ((免费下载,现在强制最低2资源分,评论后会返还)) Remote ...
自动锁想要远程/自动锁定Windows屏幕吗? AutoLock公开REST端点以触发屏幕锁定(从您的电话,家庭自动化系统等)。 只需在用户登录时启动应用程序(向“ Startup菜单项添加快捷方式),然后调用: ...
在RPA运行或GUI自动测试时,往往会使用远程桌面。...对windows远程桌面进行一些常规设置,保证远程桌面的连接不会中断。 如果您觉得这个脚本对您有用,欢迎下载使用。If you think it helpful for you, please take it.
Autolib轻量级windows、Linux桌面应用程序GUI软件自动化操作库,支持python、c# 简单易用。 支持机器视觉定位,可通过图片定位元素并操作 windows版支持自动跳过UAC权限 支持多线程批量执行脚本 支持https请求、...
Windows服务器易语言远程桌面批量管理工具可以批量管理服务器、VPS,操作简单,支持服务器一键直登,即使有大量的服务器、VPS也能轻松管理,非常方便! 特点: ①支持给每台服务器、VPS单独添加备注 ②支持多种...
向用户发送系统管理消息 远程关闭一台Windows NT计算机 使用Windows NT系统属性对话框 Windows NT诊断程序(Diagnostic)简介 使用Windows NT诊断程序打印一份报告 在Windows 95客户机上安装Windows NT系统管理工具 ...
使用windows的自动定时任务对数据库进行定时备份,填写远程服务器的ip、帐号、密码。在执行程序,即可把远程的数据库直接备份到本地来。这中间用到了mysql程序的sqldump.exe文件
客户端自动安装Mcafee8i+anti-spyware 客户端按指定时间到epo 上更新病毒库 客户端按要求根据epo 设置来更新本地安全策略,此例子中打开了7 相有害程序 扫描设置 注:客户端必须安装epo 的agent 注:Epo 名词功能...
SecureCRT是一款用于连接运行包括Windows、UNIX和VMS的远程系统的理想工具。通过使用内含的VCP命令行程序可以进行加密文件的传输。有流行CRTTelnet客户机的所有特点,包括:自动注册、对不同主机保持不同的特性、打印...
* 连接到多台安装相同应用程序的电脑 * 和电脑应用程序交互,使用直观的触摸控制和熟悉的 iPad 手势 快速简单的设置: * 一键单击访问您的电脑桌面,设置步骤简单 * 应用程序自动发现在本地的电脑 * 支持所有版本的 ...
× 《Windows环境下32位汇编语言程序设计》 × × 附书代码说明 × ××××××××××××××××××××××××××× 1. 编译器和链接器 本附书代码全部采用 MASM 格式编写,推荐使用 MASM32 软 件包作为...
视窗HDP Windows 上 Hortonworks 数据平台的自动化控制台安装程序。 可用于安装多节点集群、卸载集群或向现有集群添加节点。概述此安装程序可用于部署 HDP windows 多节点集群、从多节点机器卸载 HDP 以及向现有集群...
它与一般的远程控制软件不同,不需要手工安装服务器端程序,它的安装、配置能够自动完成。 在“Browser”框中双击“Remote control ”项,弹出“DameWare mini remote control”窗口,在“Remote connect”对话框的...