2013-03-05 62 views
3

我们正在迁移到Windows 7(已启用UAC),这会阻止标准用户为内部Web应用程序安装ActiveX控件。以编程方式下载并安装activex(.cab)

我可以访问本地管理员帐户,我可以运行提升,我可以轻松获取所需的.cab文件。有没有一种简单的方法来安装它们,以使.inf文件得到尊重?问题中的.inf文件包含挂钩来控制安装,所以我宁愿不要简单地在包含的.ocx文件中调用regsvr32。

基本上我想用C#模仿IE的安装过程中,随着不断出现在“Downloaded Program Files文件”的文件,所有的注册表设置正确书写等

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

其他信息

这个问题已经被标记为重复,它肯定会出现类似于原来的问题,但在我的情况我有机会到本地管理员帐户,所以我的问题是,特别是约仿效IE安装过程而不是克服UAC限制。 @Ben提出了一个使用advpack的解决方案(通过rundll32),但我一直无法在我的环境中工作,尽管我会继续调查。

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

HKLM \ SOFTWARE \ Microsoft \ Code Store Database \ Distribution单位 HKLM \ SOFTWARE \微软\的Windows \ CurrentVersion \ ModuleUsage HKLM \ SOFTWARE \微软\的Windows \ CurrentVersion \ SharedDlls

我现在不能回答我的这个信息有疑问。

+0

这个类似的问题可能有一些帮助:http://stackoverflow.com/questions/1769623/issue-with-cab-file-activex-installation-on-windows-vista-and-7?rq=1 – 2013-03-05 14:09:54

+0

谢谢,但它的第三方,所以我不能重新编译控件。链接的MSDN文章(“非管理ActiveX控件”)看起来很有趣,因为它需要对.inf文件进行简单的更改,但如果可能的话,我宁愿将所有服务器端都保持原样。正如我所说,我拥有一个管理员帐户,所以我理论上能够克服UAC限制。 – weaver 2013-03-05 14:42:41

回答

1

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

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

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

确保运行作为行政或升高帐户。

+0

是的,集中推出将是理想的。但是不管交付机制如何,我都需要“正确的命令行”。这是我在这里寻找的。 – weaver 2013-03-06 07:59:08

+0

答案是解决问题的方法。如何添加链接。 – Ben 2013-03-06 10:02:22

+0

我想接受这个答案,因为它肯定是我需要的,但不幸的是它在我的开发机器(XP SP3)上不起作用。它只是默默无闻。大概这个问题应该是一个新问题,而不是原始问题的分歧? – weaver 2013-03-11 07:59:19