【问题标题】:Does PowerShell /silent or /quiet arguments install bloated software that can be included in an applicationPowerShell /silent 或 /quiet 参数是否安装可包含在应用程序中的臃肿软件
【发布时间】:2019-01-07 18:36:07
【问题描述】:

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

示例

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

【问题讨论】:

  • 静默安装不是 powershell ...它是 MSI/安装程序。所以你需要了解安装程序本身的作用。

标签: powershell installation windows-installer


【解决方案1】:

简短摘要:您发布的对话框中显示的选项似乎是由 setup launcher binary 而非主 MSI 编写的 安装运行时本身。一般部署很差 设计,但它就是这样。下面是如何创建的说明 为企业部署的常规 MSI 管理映像 部署。尝试的 MSI 中也存在设计错误 解释。


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

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

  1. ExtractSilverlight_x64.exe 使用 7-Zip 或同等技术。
    • 我收到警告说在负载结束后有一些数据。暂时忽略。
  2. 提取的文件install.exeinstall.res.dllmicrosoft_defaults.exesilverlight.7zsilverlight.msi
    • install.exeinstall.res.dll - 设置启动器
    • microsoft_defaults.exe - 必须是一些设置编写者
    • silverlight.7z - 包含 MSP 的存档 - Windows Installer 补丁包
    • silverlight.msi - 空的 MSI 安装程序
  3. Admin Image:忽略支持的 dll 和 exe 文件,您可以创建一个真正的 Windows Installer 管理映像,如下所示。首先从 MSI 文件创建一个管理映像,然后使用 MSP 文件对其进行修补:

    管理员图片

    msiexec.exe /a silverlight.msi TARGETDIR=C:\Silverlight
    

    补丁管理图片

    msiexec.exe /a c:\Silverlight\silverlight.msi /p Silverlight.msp
    
  4. 转换:您现在可以创建转换以更改随 MSI 文件一起安装的内容,或者您​​可以尝试按原样安装 MSI .

    • 我在安装过程中遇到错误,这表明microsoft_defaults.exe 文件可能会在安装过程中被调用,并且应该放在解压映像中的 MSI 文件旁边。
    • 此处详细描述了如何使用转换自定义 MSI 安装:How to make better use of MSI files
  5. 安装:最后您可以使用标准 msiexec.exe 命令行安装 MSI 安装程序:

    安装命令

    msiexec.exe /i c:\Silverlight\silverlight.msi TRANSFORMS=c:\Silverlight\silverlight.mst /L*v C:\MyLog.log /QN
    
    • 看起来自定义操作RegisterAuthenticodeSIPRegisterAuthenticodeSIP_64InstallFinalize 之后运行自注册。除非整个设置运行提升,否则这将失败。 MSI 中存在严重的设计错误。

调试和 UAT:一旦你自己为一个如此“笨重”的包创建标准 MSI 安装映像,你必须运行进行几轮调试和 UAT 测试以确保其正常工作,但通常,如果您有很多机器要安装,而不是依赖这些可执行文件,您会看到更少的故障 - 只要没有遗漏任何严重的东西。您还可以通过使用重新打包工具(Advanced Installer、Installshield 等)或系统调试 (ProcMon.exe) 监控可执行文件来确定可执行文件的写入内容。


原答案

我现在看不到这个,但让我按照你的方式提供一些链接。必须将此作为答案而不是评论 - 会发展它:

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

【讨论】:

  • 非常感谢!我今天会对此进行调查,并在我写这篇文章时给你反馈。
【解决方案2】:

查看 PowerShell DSC 或 Chocolatey。两者都有可以静默安装的软件包。

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

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

巧克力是两者中更容易搭配的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    相关资源
    最近更新 更多