阅读前请参考:
        深入理解全局编录服务器( [url]http://alligator.blog.51cto.com/36993/101190[/url])
 
        全局编录服务器并不是一个独立的实体,域控制器也没有单独为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相关的概念有更深入的理解!