如何使用PowerShell运行安装程序?

Zir*_*ono 0 powershell automation install windows-installer

我正在尝试安装一个软件,当手动完成时,您可以在完成整个过程时选择配置选项.我试图找到一种使用PowerShell自动化的方法,但我仍然坚持如何设置这些配置选项.我相信我需要在安装程序.exe上运行start-process命令,但我不知道从那里去哪里.我可以使用start-process命令中的参数来传递我想要的配置吗?

Ste*_*mul 6

更新:底部的几个链接,提供有关如何处理文件的安装,配置文件提取的信息setup.exe.

更新:请参阅github.com上的Windows Installer PowerShell模块(向下滚动以获取说明,使用版本选项卡进行下载).我还没有真正测试过,但它来自Heath Stewart - 微软高级软件工程师(github).


我快速查看了该安装程序,但没有轻易找到它.本质上,安装程序是Windows Installer数据库(MSI)或其他东西 - 通常是某种setup.exe.MSI数据库也可以包装在setup.exe中.

您应该知道,对于旧式样式安装程序,大规模部署的常见做法是使用应用程序重新打包工具捕获旧版安装,然后编译MSI文件以用于安装(有效地将安装程序从旧格式转换为现代MSI格式).这是一项需要充分了解Windows和设置的专业任务.对于非常大的软件分发,它通常在大公司中完成.如果您在一家大公司,可能会有一个专门用于打包软件的团队,就像您提到的那样.也许请咨询您的管理层.如果设置是MSI,则同一团队也可以根据您的规范为您修改.


关于您的安装程序EXE.尝试从命令行运行setup.exe /a,看看是否有一个选项将文件解压缩到"网络安装点"(管理安装).然后,您正在处理包含在setup.exe中的MSI文件.如果这不起作用,你可以尝试setup.exe /x或尝试setup.exe /extract.

Windows Installer具有内置功能,允许您通过在命令行设置的PUBLIC属性(大写)自定义安装,或通过转换应用(Windows Installer的机制对供应商文件应用实质性更改) - 它是一个部分数据库在运行时从供应商应用于安装数据库).

非MSI,传统安装程序技术通常具有较少的可靠方式来自定义安装设置,并且当它们存在时它们往往是临时的.特别是静默运行和卸载可能是缺少或执行不佳的功能.这些安装通常都以EXE格式包装,并且有许多工具用于生成它们 - 每个工具都有自己的怪癖和功能.

换句话说,这完全取决于安装程序的实现方式.放弃setup.exe /a一下,用我们的新信息更新您的答案(不要添加太多评论 - 我们会回来查看).


关于使用PowerShell.到目前为止,我还没有使用PowerShell进行部署.以下是如何使用PowerShell进行安装的基本说明:https://kevinmarquette.github.io/2016-10-21-powershell-installing-msi-files/

您也可以从PowerShell调用MSI文件的自动化,我认为这与您提出的问题无关,但这里有一个用于修改转换文件的快速链接:http://www.itninja.com/question/ps-怎么编辑一个文件.

安装MSI文件的常规方法是通过Window的内置msiexec.exe命令行.用于安装软件的基本msiexec.exe命令行是:

msiexec.exe /I "C:\Your.msi" /QN /L*V "C:\msilog.log" TRANSFORMS="C:\1031.mst;C:\My.mst"
Run Code Online (Sandbox Code Playgroud)

快速参数说明:

/I = run install sequence
/QN = run completely silently
/L*V "C:\msilog.log" = verbose logging
TRANSFORMS="C:\1031.mst;C:\My.mst" = Apply transforms 1031.mst and My.mst (see below).
Run Code Online (Sandbox Code Playgroud)

什么是变换?这里解释:如何更好地利用MSI文件.

Advanced Installermsiexec.exe命令行上有一个常规页面.这是Microsoft在MSDN上的msiexec.exe文档.


一些链接:

  • 也许在这里看到Michael Urman的答案:以编程方式提取InstallShield setup.exe的内容.这仅适用于Installshield打包的EXE文件.
  • Installshield setup.exe命令(一般参考一些示例命令行 - 在文档的末尾,它看起来像命令行不正确,但是第一个看起来还不错.后面的那些看起来很晦涩 - 只是想到我让我知道,因为我链接到它).这是官方的Installshield帮助文档.
  • 明智的setup.exe命令 - Wise不再可用,但如果设置较旧,它仍然可以与Wise一起打包.
  • Advanced Installer标准命令行.对于此工具,设置显然可以用setup.exe /x或提取setup.exe /extract.请参阅链接以获取完整列表.
  • 还有一个" 静音开关查找器 "工具用于在exe文件中查找隐藏的开关(用于部署),但它无法通过virustotal.com扫描,因此我不会链接到它.也许它正在使用异国情调的东西,例如在某个位置扫描文件的标题或者被错误地标记为恶意软件的奇怪的东西?无论哪种方式,不是我会使用的工具.
  • 最后:http://unattended.sourceforge.net/installers.php.这个链接也不错,它提供了上面的一些工具和其他一些工具 - 以及最常用的交换机.我未经测试,但看起来不错.
  • 还有其他部署工具有自己的打包和交付EXE文件的方式 - 它可以是一个丛林.我可以提供一个包含更多链接的工具列表,但这可能只是令人困惑.请先尝试上面提供的内容.
  • 这是一个通用的答案,也可能有用:从EXE中提取MSI