2

似乎以前在 Wix2 中有一个 MMC 扩展,建议 xmlns http://schemas.microsoft.com/wix/MmcExtension - 尝试读取此 URL 当前会导致错误页面。

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

4

3 回答 3

2

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

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

于 2013-04-05T15:48:32.420 回答
0

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

heat reg <your_exported_registry> -o <output_filename>

于 2013-06-18T09:52:48.247 回答
0

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

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

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

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

最初来自 MSDN 示例的
函数 SetPrivilege 示例代码 获取
所有权示例代码
修改 ACL 示例代码- 已调整 获取所有权以扩展 ACL 而不是创建新 ACL 并爆破旧 ACL

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

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

于 2013-06-24T18:57:21.800 回答