PowerShell / silent或/ quiet参数是否安装可以包含在应用程序中的膨胀软件

时间:2019-01-07 18:36:07

标签: powershell installation windows-installer

要详细说明这个问题,我正在创建一个自动化脚本,该脚本将在Windows 10上安装基本的第三方和本地软件(chrome,adobe flash,silverlight等)。我去想知道您是否在 .msi或.exe 文件上运行静默/安静安装,并且它具有第3方软件,在通过图形用户界面安装时,默认情况下已选中要安装的第3方软件,默认情况下会安装吗?

示例

如果我要安装Microsoft Silverlight,则GUI方法可让您在安装软件之前先经过检查点。在其中的某些检查中,它们包括对本地计算机(如下所示)的默认添加/更改。您可以看到它默认为 将Bing设为我的搜索引擎 将MSN设为我的主页 。默认情况下,这些检查是通过PowerShell静默安装还是以静默安装方式安装?如果是这样,是否有办法防止或跳过这些?

enter image description here

2 个答案:

答案 0 :(得分:1)

  

简短摘要 :在您发布的对话框中看到的选项似乎是由设置启动器二进制文件而不是主MSI编写的   安装运行时本身。通常部署非常差   设计,但事实就是如此。以下是有关如何创建的说明   定期的MSI管理映像,可用于公司部署   部署。尝试在MSI中也存在设计错误   解释。


Silverlight :看过Silverlight。像往常一样,微软做了不寻常的事情-不遵循自己的“标准”。本质上,有一个启动程序可执行文件可以启动MSI安装程序(Windows Installer)。启动器可执行文件似乎显示了您在上面的屏幕快照中显示的GUI,因此可能还会将设置写入注册表。不是应该的方式-应该由MSI本身编写,并且MSI中应该有一个GUI。

您可以为 Silverlight_x64.exe 创建MSI安装映像,如下所示:

  1. 提取 Silverlight_x64.exe (使用7压缩或等效)。
    • 我收到警告,称有效负载结束后有一些数据。暂时忽略。
  2. 提取的文件 install.exe install.res.dll { {1}} microsoft_defaults.exe silverlight.7z
    • silverlight.msiinstall.exe-用于启动的启动器
    • install.res.dll-必须是一些设置编写者
    • microsoft_defaults.exe-包含MSP的归档文件-Windows Installer补丁程序包
    • silverlight.7z-空的MSI安装程序
  3. 管理映像 :忽略支持的dll和exe文件,您可以按如下方式创建真实的Windows Installer管理映像。首先从MSI文件创建一个管理映像,然后使用MSP文件对其进行修补:

    管理映像

       
    silverlight.msi

    修补程序管理映像

       
    msiexec.exe /a silverlight.msi TARGETDIR=C:\Silverlight
    
  4. 转换 :您现在可以创建一个转换来更改您认为合适的MSI文件的安装内容,也可以尝试安装MSI就这样。

    • 安装过程中出现错误,可能表明msiexec.exe /a c:\Silverlight\silverlight.msi /p Silverlight.msp 文件可能在安装过​​程中被调用,应放在提取的映像中MSI文件的旁边。
    • 此处详细描述了如何使用转换自定义MSI安装:How to make better use of MSI files
  5. 安装 :最后,您可以使用标准的msiexec.exe命令行安装MSI安装程序:

    安装命令

    microsoft_defaults.exe
    • msiexec.exe /i c:\Silverlight\silverlight.msi TRANSFORMS=c:\Silverlight\silverlight.mst /L*v C:\MyLog.log /QN 之后,自定义操作RegisterAuthenticodeSIPRegisterAuthenticodeSIP_64似乎正在运行自注册。除非整个安装程序提升运行,否则此操作将失败。 MSI中存在严重的设计错误。

调试和UAT :一旦要为一个如此“笨拙”的软件包创建标准MSI安装映像,就必须运行进行了几轮调试和UAT测试以确保其正常工作,但是如果要安装的计算机很多,则依赖于这些可执行文件的故障通常会更少,前提是不会丢失任何严重的错误。您还可以通过使用重新打包工具(高级安装程序,Installshield等)或系统调试(ProcMon.exe)监视可执行文件来确定可执行文件的内容。


原始答案

我现在不能看这个,但是让我以您的方式抛出一些链接。必须将其作为答案而不是评论-会不断发展:

setup.exe可以包装MSI,也可以是与MSI无关的旧式安装程序。 MSI允许对安装的内容进行详细控制,而较旧的设置也可以,但是标准化程度较低。

答案 1 :(得分:0)

签出PowerShell DSC或Chocolatey。两者都有启用静默安装的软件包。

巧克力 https://chocolatey.org/packages/Silverlight

PowerShell DSC https://www.powershellgallery.com/packages/PSDscResources/2.4.0.0

巧克力是两者中较容易使用的一个。