我需要在所有装有 IE 10+ 的机器上应用 GPO,但该设置不需要也不应该应用于 IE 9。所有机器都是 Windows Vista、7 和 8(一些 32 位,其他 64 位)。
我找到了两种方法
- 检查 c:\program files\internet explorer\ 中的 iexplorer.exe 版本号
- 从 \root\cimv2\Applications\MicrosoftIE 中选择 MicrosoftIE_Summary
第一种方法看起来像是一个完全的黑客攻击,可能不是找出系统实际使用的 IE 版本的最佳方法(例如,program files x86 怎么样)
SELECT path,filename,extension,version FROM CIM_DataFile WHERE path="\\Program Files\\Internet Explorer\\" AND filename="iexplore" AND extension="exe" AND version>"8.0"
第二种方法使用内置的 WMI 命名空间和类,但据我所知,微软在 Windows XP 之后从每个操作系统中删除了 \root\cimv2\Applications\MicrosoftIE 命名空间。
root\cimv2\Applications\MicrosoftIE;SELECT * FROM MicrosoftIE_Summary WHERE Version = '8.0.6001.18702'
是否有人知道 Windows 7/8 中是否有一个新的命名空间来存储 Internet Explorer 版本,或者也许有第三种方法来过滤我的 GPO,有人知道但我还没有找到。
答案1
我将在这里引用组策略专家的话:http://sdmsoftware.com/group-policy-blog/group-policy-preferences/gp-preferences-for-internet-explorer-11/
“在 GPO 中 IE 设置的 XML 底层,他们利用项目级定位 (ILT) 来确保正确的设置能够应用于客户端上正确的 IE 版本。具体来说,他们使用隐藏的文件 ILT 来检查客户端计算机上运行的 IExplore.exe 版本,并使用该版本确定要从 GPO 部署哪些 IE 设置”
看起来微软也在使用类似于您在那里提出的#1选项的东西,老实说,我不明白它有什么问题。