用于注册部署的 MSI 包

用于注册部署的 MSI 包

创建 MSI 包以通过网络部署注册表项的最佳方法是什么,而不是使用 GPO。

答案1

有很多工具可以构建 MSI。我更喜欢高级安装程序,可作为免费软件版本使用。Advanced Installer 允许您手动输入注册表项/值,或从文件或实时注册表导入它们。使用起来非常简单。

或者,如果你不需要MSI,您可以使用 Windows 实用程序从命令行轻松操作注册表reg.exe。可以使用以下工具远程完成此操作psexec

答案2

我不会使用 MSI 来部署注册表设置。指向系统设置的 MSI 是“不受控制“。MSI 认为它“拥有”该密钥,并将乐于删除或恢复它。以下是一些详细信息:

  • 无意卸载:如果您对 MSI 的编写不当,写入设置的组件将不会被标记为永久的,并且如果 MSI 被卸载,它将删除整个注册表项/值。请注意,如果您升级 MSI,重大升级在安装新版本之前可能会或可能不会执行完全卸载(取决于更新的配置方式)。如果重新安装失败,则表示您的注册表项丢失。
  • 组策略:工作站上的某些注册表项会定期(大约每 90 分钟)被域控制器命令覆盖 - 因此它们可能会在安装 MSI 后恢复。更多详细信息请点击此处
  • 添加/删除程序 (ARP):此外,这些 MSI 文件会显示在系统的“添加/删除”小程序中,用户可以在其中查看它们并可能卸载它们。您可以通过设置ARP系统组件属性设置为 1。但这只会阻止在添加/删除中显示。仍然可以从命令行或通过脚本自动化或远程管理工具卸载 MSI。
  • 清理狂潮:即使您的 MSI 隐藏在 ARP 中,如果您使用 SCCM、Altiris、Unicenter、Tivoli 或类似部署工具,勤奋的管理员清理狂热可以决定卸载这些“黑客软件包”,如果 MSI 清除了所需的设置,就会造成严重破坏。请记住,MSI 文件通常也会以提升权限(临时管理员权限)运行,因此如果一开始就不怀好意,它们肯定是全副武装且危险的。
  • 系统还原:安装 MSI 将触发创建还原点在 PC 上(除非禁用系统还原)。如果您只是写入几个值,这可能会很耗时,而且似乎有些多余。
  • 周期性自我修复:如果另一个 MSI 包引用相同的注册表项,您可能会遇到周期性自我修复周期在某些情况下。大多数管理员至少见过几次这种情况。如果你不知道从哪里找,就很难修复我在 stackoverflow 上对此写了一个很长的答案:如何调试周期性自我修复(也建议系统管理员阅读)。有关自我修复或“自我修复”的更多信息:

  • 封装干扰:如果你真的运气不好,编写了一个可以修复的 MSI(调用该 MSI),或者甚至只是自我修复(自动发生),那么在某个时候,你可以覆盖/恢复设置已被后续更改所改变。这种情况通常很难调试。不过,您可以在事件日志中找到导致问题的包。它甚至会指定导致问题的组件,但从那里开始需要 MSI 专业知识。斯蒂芬·克鲁格 (Stefan Kruger) 就该主题发表了一篇好文章微星MVP)。

  • 无保证: 与上述类似,您看到系统上安装了 MSI,这通常被视为系统已“修补”的证据。MSI 的存在告诉您安装程序在某个时刻运行过,但您对当前的注册表状态一无所知。
  • 香港中文大学: 正如其他人提到的,如果您正在写入的注册表项位于 HKCU 下,则只有在安装 MSI 时相关用户恰好登录时,它们才会被写入。任何其他用户的注册表都不会更新。活动设置可以在这里提供帮助。ActiveSetup 已基本被弃用,您可以使用登录脚本,但不要使用 MSI。

这些只是我想到的一些问题,当然还有一些我忘记了。

其他答案系统管理员的核心 MSI 信息

答案3

您可以随时通过登录脚本添加它,或者编写一个使用 psexec 通过命令行远程部署它的脚本?

相关内容