`
famoushz
  • 浏览: 2950957 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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:\目录下。

  1. 配置网络共享:
    这一点不用细述了,网上好多资料可以使用.
    为 了后面方便起见,我们假设服务器名是Server1, 共享名是Software, 而程序放置在目录Applications里面, 比如是安装Adobe Acrobat Reader 9.1的更新,我们把这个更新程序放在AdobeAcrobatReader子目录中,更新程序叫做AAR_Update91.exe.
    这样安装程序的路径应该是:\\Server1\Software\Applications\AdobeAcrobatReader\AAR_Update91.exe
    注意,上面的第三条中的那个具有管理员权限的帐户,一定要同时具有至少对Applications目录的写权限,因为我们要把运行情况记录写在这里。
  2. 把下面的批处理文件保存在管理机上,比如说叫做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
  3. 这是关键的一步了,比如准备在目标机w001上运行安装程序,那么在管理机上进入Command Prompt, 然后输入下面的命令:
    c:\psexec.exe \\w001 -u <username> -p <password> -x –c –w c:\ c:\runupdate.bat
    其中, 把<username>替换成上面提到的那个具有目标机上管理权限的用户,<password>是那个用户的密码,如果你省略密码,程序在运行时会询问你,来输入隐藏方式的密码。
  4. 上面的程序会很快地结束运行,并提示一个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实现远程登录目标服务器并自动启动程序

    综上所述,实现Windows远程登录目标服务器并自动启动程序,需要结合远程执行工具、程序设计以及启动配置等多方面知识。在实际应用中,应确保遵循安全最佳实践,例如使用安全的身份验证机制,避免密码明文传输,以及...

    WindowsXP远程桌面修复程序

    《Windows XP远程桌面修复程序详解》 Windows XP操作系统中的远程桌面功能,允许用户通过网络连接到另一台计算机,实现远程操控和数据交换。然而,在实际使用过程中,有时可能会遇到无法正常访问远程桌面的问题,...

    远程全自动系统安装及远程GHOST系统

    ### 远程全自动系统安装及远程GHOST系统详解 #### 一、概述 远程全自动系统安装及远程GHOST系统是一种高效、便捷的方式,用于在多台计算机上批量部署操作系统及应用软件。这种方式不仅可以大大减少手动操作的时间...

    C# 程序自动远程更新

    本主题聚焦于"C#程序自动远程更新"这一重要技术,它允许应用程序在运行时检查并安装远程服务器上的最新版本,从而确保用户始终使用的是最新的软件功能,并解决了安全性和错误修复的问题。 一、自动更新机制 自动...

    系统管理程序,清理磁盘、屏幕调用键盘、远程自动化管理、远程自动化连接管理、设立ODBC数据源(VB6.0源代码编写)

    3. **远程自动化管理**:远程自动化管理是指通过网络对远程计算机进行配置和监控。这通常涉及到网络通信协议(如TCP/IP)和Windows API,如WMI(Windows Management Instrumentation)服务,以获取远程计算机信息或...

    java开发的一个windows的远程监控软件

    标题中的“java开发的一...总的来说,这个Java开发的Windows远程监控软件结合了Java编程语言的跨平台优势,实现了对Windows系统的远程监控功能,涵盖了多种监控及管理操作,并且在开发过程中可能运用了多种技术和工具。

    windows 2008远程不流畅

    - **使用RDP优化工具**:市面上存在多种RDP优化工具,可自动调整服务器设置以提高远程桌面的性能。 ### 结论 Windows Server 2008远程桌面服务的流畅性受多方面因素影响,包括网络条件、服务器资源、系统配置等。...

    远程解压安装运行

    在某些情况下,也可以利用Windows的`psexec`命令或Linux的`ssh`命令直接在远程系统上运行安装程序。 3. 运行:远程运行应用程序需要确保远程计算机上安装了相应的运行环境,如.NET Framework、Java Runtime ...

    windows远程桌面(mstsc)看不到进程和对方的实际桌面的解决办法.zip_remoter远程桌面客户端

    在Windows操作系统中,远程...总之,解决Windows远程桌面(mstsc)看不到进程和实际桌面的问题通常需要综合考虑多个因素,逐一排查并调整相关设置。如果问题依然存在,建议参考相关的技术论坛或联系专业支持获取帮助。

    windows 远程管理工具

    虽然在"Windows远程管理工具"的标签中出现了PDO,但它在此处可能是指该工具具有与数据库交互的能力,比如用于存储和检索服务器信息,或者进行自动化管理任务时的数据处理。 "RDO Setup.exe"这个文件名可能指的是该...

    远程桌面监控 很不错的程序

    8. **事件通知与警报**:当远程系统发生异常时,程序应能自动发送通知,例如系统崩溃、非法登录尝试等。 9. **自动化任务**:为了提升效率,程序可能还支持预定的任务,比如定期备份、系统检查或自动执行脚本。 10...

    修复windows远程桌面

    标题中的“修复Windows远程桌面”指的是解决在使用Windows操作系统时,远程桌面连接功能出现的问题。远程桌面是Windows系统提供的一项功能,允许用户通过网络连接到另一台计算机进行操作,这对于远程工作、技术支持...

    最方便的远程桌面连接程序

    远程桌面连接程序是一种高效的工作工具,它允许用户通过网络访问并控制远程计算机,如同亲自坐在那台电脑前操作一样。在Windows操作系统中,这个功能内置在系统中,名为“远程桌面连接”或“mstsc”(Microsoft ...

    远程桌面程序

    8. **错误处理与恢复**:由于网络环境的不稳定性,远程桌面程序需要具备良好的错误处理机制,如自动重连、断线恢复等。 Delphi提供的强大组件如TIdTCPClient和TIdTCPServer,可以帮助开发者轻松处理网络通信。同时...

    windows安装程序无法将windows配置为在此计算机.docx

    在安装Windows操作系统(本例中为Windows 7)的过程中,用户可能会遇到一个异常情况:安装部署阶段突然出现一个错误提示框,指出“Windows安装程序无法将Windows配置为在此计算机的语言幕后允许”。这一错误导致系统...

    C++程序移植及vs远程开发_从windows到linux程序.docx

    本资源摘要信息将详细介绍 C++ 程序从 Windows 下移植到 Linux 环境下的注意事项,并且可以通过 Windows + VS 进行远程开发 Linux 程序。 一、移植注意事项 1. 去掉 `#include "stdafx.h"` 和 `#include "windows....

    远程桌面监控软件

    它支持Windows操作系统,具备高速传输、低延迟的特点,使得远程操作流畅无阻,无论是文件传输还是程序运行都能得到良好的体验。 远程监控软件的核心功能包括: 1. 远程桌面控制:用户可以实时查看和控制远程计算机...

    电脑远程控制 远控程序 注册版 远程控制

    8. **使用说明.txt**:这是一个文本文件,很可能包含了软件的安装指南、操作步骤和常见问题解答,是用户开始使用远程控制软件的重要参考资料。 综上所述,远程控制软件“电脑远程控制 远控程序 注册版”提供了一...

    WindowsXP远程登录到Windows2003服务器操作手册.pdf

    "WindowsXP远程登录到Windows2003服务器操作手册" 知识点一:Windows XP远程登录到Windows 2003服务器的前提条件 在进行远程登录之前,需要在Windows 2003服务器端配置远程桌面连接。在服务器端,需要启用远程桌面...

    WindowsServer版远程桌面批量管理工具

    为了简化这一过程,Windows提供了一款名为“Windows Server版远程桌面批量管理工具”的实用程序,它使得管理员能够在一台本地计算机上同时管理和控制多个远程服务器,大大提升了工作效率。 该工具的核心功能是通过...

Global site tag (gtag.js) - Google Analytics