3

我们正在迁移到 Windows 7(启用 UAC),这将阻止标准用户为内部 Web 应用程序安装 ActiveX 控件。

我可以访问可以提升权限的本地管理员帐户,并且可以轻松获取所需的 .cab 文件。有没有一种简单的方法可以以尊重 .inf 文件的方式安装它们?有问题的 .inf 文件包含用于控制安装的挂钩,因此我不想简单地在包含的 .ocx 文件上调用 regsvr32。

基本上我想用 C# 模拟 IE 安装过程,文件出现在“下载的程序文件”中,所有注册表设置都正确写入,等等。

顺便说一句,我注意到有一个可用于 Win7 机器的“ActiveX 安装服务”,但这似乎没有启用/配置。

附加信息

这个问题已被标记为重复,它看起来肯定与原始问题相似,但在我的场景中,我可以访问本地管理员帐户,所以我的问题专门关于模拟 IE 安装过程,而不是克服 UAC 限制。@Ben 建议了一个使用 advpack(通过 rundll32)的解决方案,但我无法让它在我的环境中工作,尽管我会继续调查。

与此同时,我已经能够实现一种蛮力方法,它可以使用 IE 精确复制安装行为。这需要将文件定位并提取到“已下载的程序文件”目录,在提取的 ocx/dll 文件上调用 regsvr32,然后将条目添加到以下注册表位置:

HKLM\SOFTWARE\Microsoft\Code Store Database\Distribution Units HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ModuleUsage HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls

我目前无法用这些信息回答我自己的问题。

4

1 回答 1

1

使用组策略、MOM 或类似方法推出所需的组件。

您只需制定正确的命令行来执行组件的管理安装,您可以将其添加到登录脚本或类似的脚本中。一旦“为所有用户”安装了组件,问题就会消失。

至于如何做到这一点,这是一个不同的问题:

确保您以管理帐户或提升帐户身份运行。

于 2013-03-05T17:35:48.217 回答