在本章前面曾经提到,Windows Vista及更新版本中的IE 8使用UAC,根据完整性级别和权限集来区分数据访问权限与命令。这些功能大多是保护模式的一部分。
由于"按机器ActiveX"控件需要将二进制文件和注册表设置写到高完整性(系统级别)位置,所以浏览器启动分离的代理进程来处理这些安装。当准备安装ActiveX控件时,IE启动ieinstall.exe,在特定情况下还会启动axinstsv.exe,以请求许可(通常是采用UAC对话形式),并继续安装过程。
1. ActiveX安装代理(ieinstal.exe)
ActiveX安装代理是一个进程外COM对象,它安装和注册"Per-Machine ActiveX"控件包。在对所下载ActiveX库或CAB包进行有效验证码签名检查之后,URLMon实例化这一代理,并将包传送给它。当代理请求提升到高完整性MIC级别时,将显示UAC提示。
2. ActiveX安装程序服务(axinstsv.exe)
ActiveX安装程序服务是供Windows Vista和更高版本使用的一个服务,可以在实现"组策略"的环境中管理ActiveX的安装。由于IE的ActiveX安装代理需要提升到一个高完整性上下文,所以"标准用户"组中的用户由于缺乏管理权限而不能安装"按机器控件"。比如,这就意味着:一个受控企业环境中的用户,在没有管理员输入其密码的情况下,是不能安装Adobe Flash的。ActiveX安装程序服务允许管理员提前批准安装控件,从而解决了这一问题。