【问题标题】:Software install automation软件安装自动化
【发布时间】:2011-08-24 15:40:19
【问题描述】:

我在计算机软件安装中心工作 - 我们的用户运行 Windows。有些软件很难为新员工安装。我想使用 Python 或 Java 自动设置软件。我应该如何在设置对话框中填写信息并自动完成设置过程?

【问题讨论】:

  • 自动化安装是一项完全普通的系统管理任务。我曾经使用过的每个安装程序都允许您通过命令行指定设置并执行安装,甚至无需显示 GUI。您需要做的就是编写一个批处理文件。是否有某些原因这对您不起作用?
  • Java 不会是我为这样的任务选择的语言。我很想在编辑时从问题中删除 Java 标记,但拒绝了。
  • 我建议使用现有解决方案之一来部署和安装软件。有一个 OSS 和商业解决方案可以做到这一点。不要重新发明轮子。
  • @kindall,许多安装系统将软件的安装与软件的配置分开。在这样的系统中,您根本无法指定设置(但您可以在安装后编辑配置文件)。也就是说,对于将安装和配置组合在一个包中的那些,您是正确的。
  • BTW +1 说明您尝试向最终用户提供的功能(简单/自动/隐形安装)以及策略 您想要实现的(在设置对话框中填写信息)。第二种不一定是实现第一种的最佳方式,而第一种才是重要的。

标签: java python windows deployment installation


【解决方案1】:

---- 已编辑,因为解决方案显然是在谈论 Windows / MSI ----

MSI 支持在命令行上传递配置参数。了解更多。除非他们正在做一些真正奇特的事情,或者他们以故意忽略参数的方式打包程序,否则您可能会发现最好的解决方案就是在链式安装期间将参数放在命令行上。

---- 原帖如下----

首先,您需要知道要在哪种系统上安装软件。

然后您需要选择该系统默认的包管理系统,在 Windows 上是 MSI,许多 Linux 系统使用 RPM(有些使用 deb)等。

那你需要看看远程安装。几乎每个现代包管理器都支持一种或另一种远程安装技术。根据包管理器的不同,这可能涉及推送解决方案(将带有配置信息的包拖放到目录中或使用接口发送),而其他则使用拉取解决方案进行管理。

如果使用拉式解决方案,安装每日作业以从特定资源拉取,然后您可以将系统转换为拉式解决方案(这通常会使管理更容易一些)。

稍后,您可能希望查看更具包容性的解决方案,例如如何在安装过程中安装基础软件的附加组件。同样,对于您打算支持的每个操作系统,它都是不同的。

【讨论】:

    【解决方案2】:

    我使用pywinauto 来自动化 GUI,它应该也适用于安装表单。

    【讨论】:

      【解决方案3】:

      如果您想在 Windows 上自动完成对话框,AutoIt 是您的最佳选择。优秀的文档和支持,强大但可读的脚本语言,支持自定义 GUI 创建和脚本编译等

      这是一个带有 AutoIt 的 WinZip 安装示例:

      ; Run the winzip installer
      Run("winzip90.exe")
      ; Initial Setup Screen
      WinWaitActive("WinZip® 9.0 SR-1 Setup", "&Setup")
      Send("!s")
      ; Install location
      WinWaitActive("WinZip Setup", "into the following folder")
      Send("{ENTER}")
      ; Features overview
      WinWaitActive("WinZip Setup", "WinZip features include")
      Send("!n")
      ; License agreement
      WinWaitActive("License Agreement")
      Send("!y")
      ; Quick start
      WinWaitActive("WinZip Setup", "Quick Start Guide")
      Send("!n")
      ; Choose interface
      WinWaitActive("WinZip Setup", "switch between the two interfaces")
      Send("!c")
      Send("!n")
      ; Installation type (custom/express)
      WinWaitActive("WinZip Setup", "&Express setup (recommended)")
      Send("!e")
      Send("!n")
      ; Select file associations
      WinWaitActive("WinZip Setup", "WinZip needs to associate itself with your archives")
      Send("!n")
      ; Completed installation screen
      WinWaitActive("WinZip Setup", "Thank you for installing this evaluation version")
      Send("{ENTER}")
      ; Wait for winzip to load then close it
      WinWaitActive("WinZip (Evaluation Version)")
      WinClose("WinZip (Evaluation Version)")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-02
        • 1970-01-01
        相关资源
        最近更新 更多