【问题标题】:Download and install activex (.cab) programmatically [duplicate]以编程方式下载并安装activex(.cab)[重复]
【发布时间】:2013-02-19 23:00:20
【问题描述】:

我们正在迁移到 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

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

【问题讨论】:

  • 这个类似的问题可能会有所帮助:stackoverflow.com/questions/1769623/…
  • 谢谢,但它是第 3 方,所以我无法重新编译控件。链接的 MSDN 文章(“Non-Admin ActiveX Controls”)看起来很有趣,因为它需要对 .inf 文件进行简单更改,但如果可能的话,我更愿意保留服务器端的所有内容。正如我所说,我有一个管理员帐户可供使用,因此理论上我能够克服 UAC 限制。

标签: c# windows-7 activex cab


【解决方案1】:

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

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

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

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

【讨论】:

  • 是的,集中部署将是理想的。但无论交付机制如何,我都需要您建议的“正确命令行”。这就是我在这里寻找的。​​span>
  • 答案是解决问题的方法。添加了如何操作的链接。
  • 我想接受这个作为答案,因为它看起来确实是我需要的,但不幸的是它在我的开发机器(XP SP3)上不起作用。它只是默默地什么都不做。大概这个问题应该作为一个新问题而不是原始问题的分歧提出?
猜你喜欢
  • 2019-04-13
  • 2011-11-09
  • 1970-01-01
  • 2011-06-25
  • 2019-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多