【问题标题】:Creating an MSI or Script to deploy an EXE through AD创建 MSI 或脚本以通过 AD 部署 EXE
【发布时间】:2019-04-16 22:56:29
【问题描述】:

首先: 我知道还有其他问题会问类似/相同的问题,我已经看过他们尝试了所有这些问题,但没有任何解决方案有帮助。

问题: 我们使用 Epson Iprojection(从这里下载:https://www.epson.co.nz/products/projectors/software/)但是我找不到从中获取 MSI 的方法(我开始认为 .exe 中没有捆绑 MSI),而且我似乎无法在计算机上通过 CMD 安装它,开始使用 AD。任何帮助将不胜感激。

【问题讨论】:

  • Sending you a link 作为开始。现在看不到这个。
  • 我已经对此进行了调查并进行了进一步研究,我发现 .exe 中没有捆绑 MSI,所以现在我需要了解如何通过 cmd 安装它,因为 /s 不起作用
  • 乍一看,我在itninja.com package database 中也看不到它。
  • 您可以选择捕获设置吗? Using a repackaging tool?
  • 据我所知,它是一个包装好的本机 InstallShield 安装程序。运行setup.exe,然后在%temp% 文件夹中查找具有GUID 名称的子文件夹(如{27CDEEE8-B6F2-45a7-A48E-696862573D9B})。在里面你会发现一个InstData 子文件夹和另一个setup.exe

标签: windows active-directory windows-installer exe


【解决方案1】:

模糊答案:让我试着从上面那些乱七八糟的 cmets 中得出一个答案。我只是简单地测试了这个软件,它的部署可能没有表达的那么糟糕。 Remember that this is a generic answer for whoever would find this in the future, and not for OP per-se(这里没有真正的答案)。


尽职调查:如果我对包裹有任何问题,我总是会尝试咨询package tip databases。某个人、某个地方(最终)会遇到同样的问题。

静默安装:传统设置的静默安装通常是可能的(并非总是如此),但从不真正可靠。对于 Installshield,它涉及记录对话答案的答案文件 (setup.iss)。但是,某些系统上可能会突然出现未知对话框(low disk spacereboot promptsunexpected lock or application in-use warnings@987654333 @,etc...) 并因此意外停止安装,因为响应文件没有相关对话框的记录值。这种特殊的 Epson 设置在卸载时也有一个不幸的重启要求,这对于大规模部署来说很难处理(可能会自发重启 - 没有警告)。

重新打包:我个人会尝试捕获安装using a repackaging tool。其中大部分都很昂贵,但可以输出 MSI、MSIX 或其他部署包类型。当包包含复杂的自定义逻辑(例如,创建动态内容(密码、唯一 GUID 等...))以及在一些非常具体的技术案例中,重新打包会失败。

联系供应商:如果您捕获的 MSI 不起作用,为什么不尝试将其发送回供应商,并附上一些关于该软件有多难的 cmets部署并可能提及the major benefits of MSI?我会告诉他们,如果他们无法提供有效的部署解决方案,您必须从您的网络中删除整个软件。时间就是生命。 “有些解决方案只有在你的时间一文不值的情况下才免费”(quote from Joel Spolsky himself - 有点脱离上下文,但同样的问题:我们需要及时有效的解决方案)。

注意:我曾经必须编译一个特殊的设置来处理客户的 部署问题是我们的错。部署问题需要在标准化级别进行修复。标准!

【讨论】:

  • 所以我已经完成了“尽职调查”(或者至少我认为我有)部分,我还与其他人一起寻找解决方案,而 ITNinja 没有我正在使用的程序(尽管如此,据我所知,他们在重新命名之前拥有旧版本,至少我是这么认为的)。据我所知,静默安装不是一个选项(在 CMD 中使用 -s)。我已经联系了供应商,但是我没有得到回复。
  • 安装捕获时会发生什么?我假设你已经捕获了?
  • 要么我做错了,要么它不起作用(我认为是因为它安装了驱动程序)
  • 也许寻找the driver files 并在安装不起作用的软件包后尝试手动安装它们?尝试使用dpinst.exe(找到这个quick sample)这样做。驱动程序文件是 *.cat*.inf*.dll 和类似文件。
  • 我认为驱动程序需要在软件包之前安装,因为没有它们就无法安装软件包但是我无法安装它,我将联系爱普生,看看他们怎么说,(我已经这样做了,但他们没有回复,所以我将尝试另一种联系方式)
【解决方案2】:

埋在单个 exe 下载中的是 iProjection_inst.exe,某种提示语言选择的包装器,似乎没有标准的“非交互”模式。

里面是instData\Setup.exe,一个老式的“全屏”InstallShield安装程序,带有外部ini/cab文件。

使用 Setup.exe /? 运行它不会提供任何命令行参数,就像现代 InstallShield setup.exe 一样。

虽然它支持通过Setup.exe /r 录制应答文件,但当我尝试使用Setup.exe /s 重播应答文件时,它似乎仍然提示输入 EULA,然后安装失败。

所以这确实是最里面的安装程序中与对话框序列有关的设计缺陷。

假设 Epson 不会修复它并且重新打包太难,一个 hacky 的替代方法是使用 Powershell 来自动化 instData\Setup.exe 的 UI 一旦“欢迎”屏幕显示,但我认为这不会运行作为一个广告脚本。

$wshell = New-Object -ComObject wscript.shell
$aName = "Epson iProjection Setup"
function Next() { 
  if ($wshell.AppActivate($aName)) { 
    $wshell.SendKeys(' '); 
    start-sleep 1;
  } 
}
function AcceptEula() {
  if ($wshell.AppActivate($aName)) {
   $wshell.SendKeys("{TAB}"); 
   $wshell.SendKeys("{TAB}"); 
   $wshell.SendKeys(' '); 
   start-sleep 1;
  } 
}
Next; AcceptEula; AcceptEula; start-sleep 20; Next;

【讨论】:

    【解决方案3】:

    我知道这是一个旧线程,但现在看起来可能很容易。最新的 2.41 来自这里

    http://www.downloads.epson.com.au/DownloadFile.asp?filename=iProV2411Win%5FWEB%2Eexe&path=Drivers

    其中似乎有一个 MSI。只需跳入 %temp% 文件夹并按日期组织,您就可以看到最新的文件。运行安装程序,应该会出现一个以 GUID 命名的新文件夹,在我的例子中是 {27CDEEE8-B6F2-45a7-A48E-696862573D9B}。

    在此文件夹下有一系列 InstData 文件夹,例如 InstDataX64,您可以在其中找到 MSI。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      • 1970-01-01
      相关资源
      最近更新 更多