您的位置:首页 > 运维架构 > 网站架构

使用AdsiEdit工具查看GC数据 推荐

2008-09-23 12:02 423 查看
阅读前请参考:
深入理解全局编录服务器(http://alligator.blog.51cto.com/36993/101190)

全局编录服务器并不是一个独立的实体,域控制器也没有单独为GC准备一个独立的DIT文件,GC服务器与当前的域公用同一个NTDS.DIT文件,两者的区别只是使用的端口号不同,前者使用3268端口,后者使用389端口。理解了这一点,也就理解了如何来查看GC数据。
AdsiEdit工具是一个超级强大的AD查看与编辑工具,我们可以使用这个工具做一些其它工具无法实现的功能。
比如本文准备阐述的查看全局编录服务器中的数据等。
为了更好的说明如何使用AdsiEdit工具查看GC数据,先介绍一下当前的演示环境:
两个域,父域为Superlan.Com,子域为Sub.Superlan.Com,其中Superlan.Com域中有一台DC(PriDomDemo.Superlan.Com),
同时担任GC角色,子域中有一台DC(SubDomDemo.Sub.Superlan.Com),非GC。
域结构如下:



因PriDomDemo.Superlan.Com为父域DC,同时又为GC,所以在PriDomDemo AD数据库中,应该包含有子域Sub.Superlan.Com数据。
那么如何在PriDomDemo中查看子域数据,同时验证GC相关的概念,比如
GC是森林中所有对象的只读调整缓冲存储器
包含有子域所有对象的部分属性。
自定义对象的哪些属性保存的GC中,同时决定该属性是否可以进行索引等等。

本文利用AdsiEdit工具,分别连接GC以及Sub.Superlan.Com域,通过比较标准的Sub域数据与保存在GC中Sub域数据,就上述问题做深入阐述!
具体操作如下
一:使用AdsiEdit查看AD数据
1:连接到GC服务器
在AdsiEdit中,连接到GC服务器很简单,唯一需要注意的是,需要在“高级”中指定使用Global Catalog协议
具体如下:
在“运行”窗口输入“AdsiEdit.msc",打开AdsiEdit编辑器。
选中"AdsiEdit",右键选择”Connect to“



在"Connection Setting"弹出框,输入相应的名称上下文



输入名称上下文后,打开"Advanced "按钮,选择”Global Catalog"协议



选择两次OK按钮,确定输入无误后,就可以正确连接到GC服务器
2:新建一个连接到Sub.Superlan.Com域
操作与连接到GC步骤类似,保留“Advanced"中默认的LDAP协议



建立好上述两个连接后,AdsiEdit工具窗口中存在两个连接,分别是GC服务器数据和Sub子域数据。



从上图我们可以看出,在GC服务器数据中,有一个“DC=Sub”容器。
展开该容器后,我们可以看到该容器中所包含的信息与Sub子域数据完全相同



从上图我们也可以看出,GC中确实保存着林中其它域的所有对象

二:验证GC是林中所有对象的只读存储器
任意展开GC中容器中任意对象的任意属性,点击“Edit"按钮,都可以看到, 所有的属性都是处于ReadOnly状态,无法进行修改。



而在非GC连接中,可以直接进行修改编辑,从中我们可以看出不论是对于当前域,还是非本地域,GC中保存的都只是对象的只读副本。

三:验证GC中只包含林中其它域所有对象的部分属性
为验证这个结论,在Sub子域新建一个OU:User Demo,其中建立有一个用户:itTrainer.分别在GC服务器和Sub子域中查看该对象属性,我们可以看出,GC中该对象有值的属性比Sub子域中该对象有值的属性少得多。GC中只保留有系统属性以及明确指出保存在GC中的属性。 而Sub子域中会保存该对象的所有属性值。

四:如何自定义哪些属性保存在GC中
要自定义哪些属性保存在GC中,需要使用AD架构管理单元。
注意,默认情况下,只有父域的Administrator属于架构管理组,而子域管理员不属于该管理组。

1:注册AD架构管理单元
步骤:注册:regsvr32 schmmgmt
在MMC中添加AD架构管理单元
打开MMC控制台,选中“Active Directory架构”,点击“属性”,在右侧内容栏列出当前域架构中存在所有属性。



2:自定义属性保存在GC中
选择任一个属性,右键选择”属性“,在弹出的”属性编辑器“中,可以自定义该属性是否保存在GC中, 同时也可以决定该属性在GC中是否编制索引,以提高搜索性能。



因为篇幅关系,本文不再演示如何自定义某个属性是否存在到GC。
有兴趣的朋友可以试着将某一个属性自定义为保存在GC中,同时建立某个对象,在该对象中对这个属性赋值,在GC中检查是否存在该属性值。甚至于可以通过架构管理单元取消某个默认保存到GC中的某个属性,然后通过GC检查该属性是否仍然保存在GC中。
相信通过相应的操作,一定会对GC相关的概念有更深入的理解!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息