【ChinaBeta.Cn 操作系统中心】
组策略想必每一位IT专业人士都是耳熟能详的名词,我们知道,组策略可以自定义一些你需要的设置,其根本是会去修改注册表相关的键值来实现最终的功能。
可是,如果我们若想实现一个功能,通过组策略间接修改注册表和直接修改注册表的位置是否相同?如果不相同,二者发生冲突,哪一个有更高的优先权呢?本文围绕这两个问题来阐述,希望能够解开大家心中的疑惑。
这里我们以一个模拟场景为例。
当我们在Outlook当中新建一个约会的时候,我们可以选择“重复周期”,如下图。

注意:这里有一个“重复范围”,默认是“无结束日期”,我们可以通过修改组策略将此更改为默认几天后结束,比如你修改为3,那么默认这里会设置为“3天之后结束”。

这时当你再打开Outlook,新建一个约会-->全天事件的时候会发现,默认的“重复周期”被修改为了N天之后,N值为你在组策略中修改的值。

如果你有兴趣的话,可以用ProcessMon去监测当你在修改组策略的时候,具体是操作的哪一个注册表键值,如下图所示。

其实仔细观察这个注册表的位置,你会发现有这样的特点(注意标红的部分):
“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\{BAD2D0C2-6AD0-4628-B32C-465EC6DC1244}User\Software\Policies\Microsoft\Office\11.0\Outlook\Options\Calendar”
那么,若想实现同样的功能,我是否可以直接修改注册表呢?答案是肯定的,但是根据官方KB给出的说法,并不是修改这个位置,而是去修改:
“HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Options\Calendar”
经过测试,发现的确修改这里也是有效的。
那么,究竟哪一个键值会有更高的优先权呢?让我们来测试一次:
修改“HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Options\Calendar” 为2天,“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\{BAD2D0C2-6AD0-4628-B32C-465EC6DC1244}User\Software\Policies\Microsoft\Office\11.0\Outlook\Options\Calendar”为5天:
结果:结束日期:5天
原来策略部分拥有更高的优先权,当发生冲突时,组策略所操作的键值会最终生效。
这其实也给我们排错提供了一个非常好的思路,当你发现某些设置不生效的时候,可以去检查注册表中组策略所操作的键值,看看是否发生了冲突。这一点,KB中曾经有明确的提示。
有兴趣的朋友可以自己测试一次,我想,印象会更加深刻,测试时要使用一个干净的环境,避免其他因素的干扰带来的测试失败。
欢迎大家提问,指正!
参考资源:
828538 More Than One Local Policy Is in Effect After You Edit Several Local Policies
http://support.microsoft.com/default.aspx?scid=kb;EN-US;828538
222283 How to set the default number of meeting recurrences
http://support.microsoft.com/default.aspx?scid=kb;EN-US;222283
(责任编辑:hahack)
|