【问题标题】:Is there a WIX extension for install MMC snapin/extension?是否有用于安装 MMC 管理单元/扩展的 WIX 扩展?
【发布时间】:2013-01-11 22:31:45
【问题描述】:

似乎以前有一个 extension for MMC in Wix2 建议 xmlns http://schemas.microsoft.com/wix/MmcExtension - 尝试读取此 URL 会导致当前页面出现错误。

我似乎找不到 Wix3.6 的等价物,这是故意(重新)移动,还是只是丢失了?

【问题讨论】:

  • 非常好的问题 - 我想自己知道答案

标签: wix wix3.6 mmc wix2


【解决方案1】:

它已被删除,您必须手动创建注册表项。 This link 很好地总结了您需要做的事情。

旧扩展只是上面链接中包含的代码的包装。我不知道他们为什么把它拿出来。

【讨论】:

    【解决方案2】:

    您也可以使用 heat 工具(您可以在 wix bin/ 目录中找到它)。 使用很简单,只需要导出 installutil 生成的注册表项并启动命令即可:

    heat reg <your_exported_registry> -o <output_filename>

    【讨论】:

      【解决方案3】:

      相关信息:
      生成注册表项后,我们的 MMC 管理单元的更大问题是它扩展了 AD 用户和计算机管理单元 - 特别是扩展了其他目录对象类型的节点类型。

      我曾希望这样的 wix 扩展能够涵盖这些,但它不在早期版本中。

      在等待 Microsoft 解决过度保护 ADUAC、SMADUAC 和 GPO 等的 Windows 文件/注册表保护问题时,我们的客户已要求我们解决此问题。

      使用自定义操作,我们从 WRP TrustedInstaller 获得所有权,并授予 Adminstrators 组访问权限以修改 NodeType 密钥,以便可以添加其他密钥。

      函数最初源自 MSDN 示例
      SetPrivilege Example Code
      Taking Ownership Example Code
      Modify ACL Example Code - 已调整 获取所有权以扩展 ACL,而不是创建新的 ACL 和爆炸旧的

      还有一些注意事项:
      Pre Win7 - 获取所有权的替代方法是使用 SE_RESTORE_NAME 来允许直接更改 ACL,但是 Win7 的安装程序进程故意阻止它,这也阻止了获取所有权能够恢复原始所有者。

      平台类型:SetNamedSecurityInfo 不允许针对 64 位注册表执行 32 位 - Windows 8 中仍然存在 Windows 操作系统限制 但是,它确实允许 64 位执行来处理 64 和 wow6432 部分。 对于二进制自定义操作,至少需要一个特定于平台的 dll。

      【讨论】:

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