这应该是比较常见的问题了。但发现居然Google不到。研究后还是写文备忘好了。
加入信任站点后,默认可以使用未标记为安全的ActiveX。在早期的B/S设计里,很多功能的实现会有要求客户加入信任站点,但Microsoft是把这些站点值写在注册表里面的。要加入某个站点,就必须写客户端的注册表。因此在客户不知情的情况下从网页上直接写入应该是做不到的。
最简单的方法应该是手动把自己的网址加入后,在注册表编辑器里面找到这个键值,再导出到文件。然后发给客户端运行就可以了。
仔细查找后,找到键值是写在HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/ZoneMap/Domains/目录下的。
找到这个就好办了。下面是批处理的实现:(www.abc.com)
reg add "HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/ZoneMap/Domains/abc.com/www" /v http /t REG_DWORD /d 0x00000002 /f
vbs脚本实现:
On Error Resume Next
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg=GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv")
strKeyPath = "Software/Microsoft/Windows/CurrentVersion/Internet Settings/ZoneMap/Domains/abc.com"
objReg.CreateKey HKEY_CURRENT_USER, strKeyPath
strValueName = "http"
dwValue = 2
objReg.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, strValueName, dwValue
msgbox("Add trust website www.abc.com Successful!")
在xp以及03下通过。
使用一段时间后又有发现,上述键值在某些客户机上会不起作用。这些客户机的ie版本(我只在某些ie7上发现)的信任/受限站点是从
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/ZoneMap/EscDomains
里面读出来的,而在/ZoneMap/Domains目录下写入不起作用。同样,在那些/ZoneMap/Domains目录写入值起作用的客户机上,把值写入/ZoneMap/EscDomains却也不起作用。
总结:某些版本ie的信任/受限站点是写在HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/ZoneMap/Domains/下,(这个在ie6以及大多数ie7上比较常见),而某些(比较少见,也许是系统版本不同的原因)情况下是写在HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/ZoneMap/EscDomains/下的。
因此,修改脚本,同时写入2个节点就可以了
On Error Resume Next
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg=GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv")
strKeyPath = "Software/Microsoft/Windows/CurrentVersion/Internet Settings/ZoneMap/Domains/zzwygl.cn/www"
Set objReg2=GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv")
strKeyPath2 = "Software/Microsoft/Windows/CurrentVersion/Internet Settings/ZoneMap/EscDomains/zzwygl.cn/www"
objReg.CreateKey HKEY_CURRENT_USER, strKeyPath
objReg2.CreateKey HKEY_CURRENT_USER, strKeyPath2
strValueName = "http"
dwValue = 4
objReg.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, strValueName, dwValue
objReg2.SetDWORDValue HKEY_CURRENT_USER, strKeyPath2, strValueName, dwValue
msgbox("Add trust website www.abc.com Successful!")
Ps:要加入受限站点,把dwValue=2改成=4就可以了