以编程方式下载并安装activex(.cab)

时间:2013-03-05 13:55:08

标签: c# windows-7 activex cab

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

我可以访问本地管理员帐户,我可以升级,我可以轻松获取所需的.cab文件。是否有一种简单的方法来安装它们以使.inf文件得到尊重?有问题的.inf文件包含用于控制安装的钩子,因此我不想简单地在包含的.ocx文件上调用regsvr32。

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

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

其他信息

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

与此同时,我已经能够实现一个使用IE完全复制安装行为的暴力方法。这需要将文件定位并解压缩到“Downloaded Program Files”目录,在提取的ocx / dll文件上调用regsvr32,然后将条目添加到以下注册表位置:

HKLM \ SOFTWARE \ Microsoft \ Code Store数据库\分发单位 HKLM \ SOFTWARE \微软\的Windows \ CurrentVersion \ ModuleUsage HKLM \ SOFTWARE \微软\的Windows \ CurrentVersion \ SharedDlls

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

1 个答案:

答案 0 :(得分:1)

使用组策略,MOM或类似方法将所需组件滚出。

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

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

确保您作为管理帐户或提升帐户运行。