
ad域管理
翻译方法-拼音线
2023年2月22日发(作者:物流运输系统)一为什么需要域?
对很多刚开始钻研微软技术的朋友来说,域是一个让他们感到很头疼的对象。域
的重要性毋庸置疑,微软的重量级服务产品基本上都需要域的支持,很多公司招
聘工程师的要求中也都明确要求应聘者熟悉或精通ActiveDirectory。但域对
初学者来说显得复杂了一些,众多的技术术语,例如ActiveDirectory,站点,
组策略,复制拓扑,操作主机角色,全局编录….很多初学者容易陷入这些技术
细节而缺少了对全局的把握。从今天开始,我们将推出ActiveDirectory系列
博文,希望对广大学习AD的朋友有所帮助。
今天我们谈论的第一个问题就是为什么需要域这个管理模型?众所周知,微软管
理计算机可以使用域和工作组两个模型,默认情况下计算机安装完操作系统后是
隶属于工作组的。我们从很多书里可以看到对工作组特点的描述,例如工作组属
于分散管理,适合小型网络等等。我们这时要考虑一个问题,为什么工作组就不
适合中大型网络呢,难道每台计算机分散管理不好吗?下面我们通过一个例子来
讨论这个问题。
假设现在工作组内有两台计算机,一台是服务器Florence,一台是客户机Pert
h。服务器的职能大家都知道,无非是提供资源和分配资源。服务器提供的资源
有多种形式,可以是共享文件夹,可以是共享打印机,可以是电子邮箱,也可以
是数据库等等。现在服务器Florence提供一个简单的共享文件夹作为服务资源,
我们的任务是要把这个共享文件夹的访问权限授予公司内的员工张建国,注意,
这个文件夹只有张建国一个人可以访问!那我们就要考虑一下如何才能实现这个
任务,一般情况下管理员的思路都是在服务器上为张建国这个用户创建一个用户
账号,如果访问者能回答出张建国账号的用户名和密码,我们就认可这个访问者
就是张建国。基于这个朴素的管理思路,我们来在服务器上进行具体的实施操作。
首先,如下图所示,我们在服务器上为张建国创建了用户账号。
然后在共享文件夹中进行权限分配,如下图所示,我们只把共享文件夹的读权限
授予了用户张建国。
好,接下来张建国就在客户机Perth上准备访问服务器上的共享文件夹了,张
建国准备访问资源Florence人事档案,服务器对访问者提出了身份验证请求,
如下图所示,张建国输入了自己的用户名和口令。
如下图所示,张建国成功地通过了身份验证,访问到了目标资源。
看完了这个实例之后,很多朋友可能会想,在工作组模式下这个问题解决得很好
啊,我们不是成功地实现了预期目标嘛!没错,在这个小型网络中,确实工作组
模型没有暴露出什么问题。但是我们要把问题扩展一下!现在假设公司不是一台
服务器,而是500台服务器,这大致是一个中型公司的规模,那么我们的麻烦
就来了。如果这500台服务器上都有资源要分配给张建国,那会有什么样的后
果呢?由于工作组的特点是分散管理,那么意味着每台服务器都要给张建国创建
一个用户账号!张建国这个用户就必须痛不欲生地记住自己在每个服务器上的用
户名和密码。而服务器管理员也好不到哪儿去,每个用户账号都重新创建500
次!如果公司内有1000人呢?我们难以想象这么管理网络资源的后果,这一切
的根源都是由于工作组的分散管理!现在大家明白为什么工作组不适合在大型的
网络环境下工作了吧,工作组这种散漫的管理方式和大型网络所要求的高效率是
背道而驰的。
既然工作组不适合大型网络的管理要求,那我们就要重新审视一下其他的管理模
型了。域模型就是针对大型网络的管理需求而设计的,域就是共享用户账号,计
算机账号和安全策略的计算机集合。从域的基本定义中我们可以看到,域模型的
设计中考虑到了用户账号等资源的共享问题,这样域中只要有一台计算机为公司
员工创建了用户账号,其他计算机就可以共享账号了。这样就很好地解决刚才我
们提到的账号重复创建的问题。域中的这台集中存储用户账号的计算机就是域控
制器,用户账号,计算机账号和安全策略被存储在域控制器上一个名为Active
Directory的数据库中。
上述这个简单的例子说明的只是域强大功能的冰山一角,其实域的功能远远不止
这些。从下篇博文我们将开始介绍域的部署以及管理,希望大家在使用过程中逐
步增加感性认识,对域有更加深入及全面的了解,能够掌握好ActiveDirector
y这个微软工程师必备的重要知识点。
二部署第一个域
在上篇博文中我们介绍了部署域的意义,今天我们来部署第一个域。一般情况下,
域中有三种计算机,一种是域控制器,域控制器上存储着ActiveDirectory;
一种是成员服务器,负责提供邮件,数据库,DHCP等服务;还有一种是工作站,
是用户使用的客户机。我们准备搭建一个基本的域环境,拓扑如下图所示,Flor
ence是域控制器,Berlin是成员服务器,Perth是工作站。
部署一个域大致要做下列工作:
1DNS前期准备
2创建域控制器
3创建计算机账号
4创建用户账号
一DNS前期准备
DNS服务器对域来说是不可或缺的,一方面,域中的计算机使用DNS域名,D
NS需要为域中的计算机提供域名解析服务;另外一个重要的原因是域中的计算
机需要利用DNS提供的SRV记录来定位域控制器,因此我们在创建域之前需
要先做好DNS的准备工作。那么究竟由哪台计算机来负责做DNS服务器呢?
一般工程师有两种选择,要么使用域控制器来做DNS服务器,要么使用一台单
独的DNS服务器。我一般使用一台独立的计算机来充当DNS服务器,这台D
NS服务器不但为域提供解析服务,也为公司其他的业务提供DNS解析支持,
大家可以根据具体的网络环境来选择DNS服务器。
在创建域之前,DNS服务器需要做好哪些准备工作呢?
1创建区域并允许动态更新
首先我们要在DNS服务器上创建出一个区域,区域的名称和域名相同,域内计
算机的DNS记录都创建在这个区域中。我们在DNS服务器上打开DNS管理器,
如下图所示,右键单击正向查找区域,选择新建一个区域。出现新建区域向导后,
点击下一步继续。
区域类型选择“主要区域”。
区域名称和域名相同,是。
区域一定要允许动态更新,因为在创建域的过程中需要向DNS区域中写入A记
录,SRV记录和Cname记录。
区域创建完毕,点击完成结束创建。
2检查NS和SOA记录
区域创建完成后,一定要检查一下区域的NS记录和SOA记录。在前面的DN
S课程中,我们已经介绍了NS记录和SOA记录的意义,NS记录描述了有多
少个DNS服务器可以解析这个区域,SOA记录描述了哪个DNS服务器是区域
的主服务器。如果NS记录和SOA记录出错,域的创建过程中就无法向DNS
区域中写入应有的记录。在DNS服务器上打开DNS管理器,在
区域中检查ns记录,如下图所示,我们发现ns记录不是一个有效的完全合格
域名,我们需要对它进行修改。
如下图所示,我们把ns记录改为.,解析出的IP地址和DNS
服务器的IP是吻合的,这样我们就完成了ns记录的修改。
如下图所示,我们把区域的SOA记录也同样进行修改,现在区域的主服务器是
.,这样SOA记录也修改完毕了。
至此,DNS准备工作完成,我们接下来可以部署域了。
二创建域控制器
有了DNS的支持,我们现在可以开始创建域控制器了,域控制器是域中的第一
台服务器,域控制器上存储着ActiveDirectory,可以说,域控制器就是域的
灵魂。我们准备在Florence上创建域控制器,首先检查Florence网卡的TCP
/IP属性,注意,Florence应该使用192.168.11.1作为自己的DNS服务器。
因为我们刚刚在192.168.11.1上创建了区域。
如下图所示,在Florence上运行Dcpromo,开始域控制器的创建。
如下图所示,出现ActiveDirectory安装向导,创建域控制器其实就是在Flor
ence上安装一个ActiveDirectory数据库,点击下一步继续。
是一个新创建的域,因为我们选择创建“新域的域控制器”。
如下图所示,我们选择创建一个“在新林中的域”,这个选项是什么意思呢?我
们虽然只是简单地创建了一个域,但其实从逻辑上讲是创建了一个域林。因为域
一定要隶属于域树,域树一定要隶属于域林。因为我们实际上是创建了一个域林,
虽然这个域林内只有一棵域树,域树内只有一个树根。
输入域的DNS名称,。
域的NETBIOS名称是ADTEST,由于.在NETBIOS名称中是非法字符,因为
基本上域的NETBIOS名称就是域名中.之前的部分。
ActiveDirectory数据库的路径我们使用了默认值,如果在生产环境,可以考
虑把数据库和日志部分分开存储。
Sysvol文件夹的路径我们也使用默认值,至于Sysvol文件夹是干嘛的,我们
后续会有介绍。
接下来ActiveDirectory的安装向导会对DNS服务器进行检测,检查是否在
DNS服务器上已经创建了和域名相同的区域,而且区域是否允许动态更新。如
下图所示,DNS检测通过。注意,如果DNS检测有问题,我们应该及时排除
故障,而不应该继续向下进行。
接下来要选择用户和组的默认权限,我们选择了不允许匿名用户查询域中的信
息。
设置一下还原模式的管理员口令,我们从备份中恢复ActiveDirectory时需要
用到。
好,如下图所示仔细检查一下创建域的各项设置是否正确,如果没有问题我们就
开工了!
如下图所示,ActiveDirectory安装向导开始在Florence上安装ActiveDir
ectory。
如下图所示,重启计算机后即可完成ActiveDirectory的安装。
重启Florence后我们发现已经可以用域管理员的身份登录了,域
已经被成功创建了。
检查DNS服务器,我们发现DNS区域中已经自动创建了很多记录,这些记录
的作用以后我们再来分析,现在大家只要注意检查一下创建域时有没有把这些记
录创建出来,如果没有那就有问题了。
至此,我们完成了域控制器的创建,域诞生了!
三创建计算机账号
创建计算机账号就是把成员服务器和用户使用的客户机加入域,这些计算机加入
域时会在ActiveDirectory中创建计算机账号。创建计算机账号从操作上看非
常简单,但其实背后涉及的东西很多,例如域控制器和加入域的计算机要共享一
个密钥等等,这些内容我们在后期会为大家介绍。
以Berlin为例为大家介绍如何把计算机加入域,首先要确保Berlin已经使用了
192.168.11.1作为自己的DNS服务器,否则Berlin无法利用DNS定位域控
制器。
如下图所示,在Berlin的计算机属性中切换到“计算机名”标签,点击“更改”。
我们选择让Berlin隶属于域,域名是。
这时系统需要我们输入一个有权限在ActiveDirectory中创建计算机账号的用
户名和口令,我们输入了域管理员的用户名和密码。
系统弹出一个窗口欢迎Berlin加入域,这时在Florence上打开ActiveDirec
tory用户和计算机,如下图所示,我们发现Berlin的计算机账号已经被创建出
来了。
四创建用户账号
创建完计算机账号后,我们需要为企业内的员工在ActiveDirectory中创建关
联的用户账号。首先我们应该在ActiveDirectory中利用组织单位展示出企业
的管理架构,如下图所示,我们为大家演示一下如何创建一个组织单位。打开A
ctiveDirectory用户和计算机,选择新建组织单位。
输入组织单位的名称,点击确定后一个组织单位就创建完成了,是不是很简单呢。
创建了组织单位后,我们就可以在组织单位中创建用户账号了,如下图所示,我
们在人事部的组织单位中选择新建一个用户。
输入用户的姓名及登录名等参数,点击下一步继续。
输入用户密码,选择“密码永不过期”。
点击完成后我们就可以轻松地创建出一个用户账号。其实,用户账号中有很多的
配置工作需要做,我们在后续的课程中会有一个专题为大家介绍。
目前为止,我们已经创建了一个域,也在域中创建了计算机账号和用户账号。
那么,域的管理优势如何能够加以体现,目前这个域模型有没有什么缺陷呢?
我们在下篇博文中将解决这个问题。(学习到此处-2009-12-21)
3用备份进行ActiveDirectory的灾难重建
上篇博文中我们介绍了如何部署第一个域,现在我们来看看我们能够利用域来做
些什么。域中的计算机可以共享用户账号,计算机账号和安全策略,我们来看看
这些共享资源给我们在分配网络资源时带来了哪些改变。实验拓扑如下图所示,
我们现在有个简单的任务,要把成员服务器Berlin上一个共享文件夹的读权限
分配给公司的员工张建国。上次我们实验时已经为张建国创建了用户账号,这次
我们来看看如何利用这个用户账号来实现资源分配的目标。
如下图所示,我们在成员服务器Berlin上右键点击文件夹Tools,选择“共享
和安全”,准备把Tools文件夹共享出来。
把Tools文件夹共享出来,共享名为Tools,同时点击“权限”,准备把Tool
s文件夹的读权限只分配给张建国。
Tools文件夹的默认共享权限是Everyone组只读,我们删除默认的权限设置,
点击添加按钮,准备把文件夹的读权限授予张建国。
如下图所示,我们选择域中的张建国作为权限的授予载体,这时我
们要理解域的共享用户账号的含义,在域控制器上为张建国创建了用户账号后,
成员服务器分配资源时就可以使用这些用户账号了。
我们把Tools文件夹的读权限授予了张建国。
我们先用域管理员登录访问一下Berlin上的Tools共享文件夹,如下图所示,
域管理员没有访问共享文件夹的权限。这个结果和我们的权限分配是一致的,我
们只把共享文件夹的权限授予了张建国。
如下图所示,在Perth上以张建国的身份登录。
张建国访问Berlin上的共享文件夹Tools,如下图所示,张建国顺利地访问到
了目标资源,我们的资源分配达到了预期的效果。
做完这个实验后,我们应该想一下,为什么张建国在访问共享文件夹时没有被要
求身份验证呢?这是个关键问题,答案是这样的。当张建国登录时,输入的用户
名和口令将送到域控制器请求验证,域控制器如果认可了张建国输入的用户名和
口令,域控制器将为张建国发放一个电子令牌,令牌中描述了张建国隶属于哪些
组等信息,令牌就相当于张建国的电子身份证。当张建国访问Berlin上的共享
文件夹时,Berlin的守护进程会检查访问者的令牌,然后和被访问资源的访问
控制列表进行比较。如果发现两者吻合,例如本例中Berlin上的共享文件夹允
许域中的张建国访问,而访问者的令牌又证明了自己就是域中的张建国,那么
访问者就可以透明访问资源,无需进行其他形式的身份验证。
我们可以设想一下基于域的权限分配,每天早晨公司员工上班后,在自己的计算
机上输入用户名和口令,然后域控制器验证后发放令牌,员工拿到令牌后就可以
透明地访问域中的各种被授权访问的资源,例如共享打印机,共享文件夹,数据
库,电子邮箱等。员工除了在登录时要输入一次口令,以后在访问资源时都不需
要再输入口令了,这种基于域的资源分配方式是不是非常的高效灵活呢?
但是,我们要考虑一个问题,万一这个域控制器坏了怎么办?!如果这个域控制
器损坏了,那用户登录时可就无法获得令牌了,没有了这个令牌,用户就没法向
成员服务器证明自己的身份,嘿嘿,那用户还能访问域中的资源吗?结果不言而
喻,整个域的资源分配趋于崩溃。这个后果很严重,那我们应该如何预防这种灾
难性的后果呢?我们可以考虑对活动目录进行备份以及部署额外域控制器,今天
我们先看如何利用对ActiveDirectory的备份来实现域控制器的灾难重建。
如果只有一个域控制器,那么我们可以利用Windows自带的备份工具对Activ
edirectory进行完全备份,这样万一这个域控制器有个三长两短,备份可以帮
助我们从困境中解脱出来。
在Florence上依次点击开始-程序-附件-系统工具-备份,如下图所示,
出现了备份还原向导,点击下一步继续。
选择备份文件和设置。
不用备份计算机上的所有信息,我们只备份ActiveDirectory,因此我们手工
选择要备份的内容。
如下图所示,我们选择备份SystemState,SystemState中包含了Active
Directory。其实我们只需要SystemState中的ActiveDirectory,Regis
try和Sysvol就够了,但备份工具中不允许再进行粒度更细致的划分,因此我
们选择备份整个SystemState。
我们把SystemState备份在C:ADBAK目录下。
点击完成结束备份设置。
如下图所示,备份开始,等备份完成后我们把备份文件复制到文件服务器进行保
存即可。
好,备份完成后,我们假设域控制器Florence发生了物理故障,现在我们用另
外一台计算机来接替Florence。如下图所示,我们把这台新计算机也命名为Fl
orence,IP设置和原域控制器也保持一致,尤其是一定要把DNS指向为ADT
提供解析支持的那个DNS服务器,在此例中就是192.168.11.1。
而且新的计算机不需要创建ActiveDirectory,我们从备份中恢复ActiveDir
ectory即可。
从文件服务器上把SystemState的备份复制到新的Florence上,然后启动
备份工具,如下图所示,选择下一步继续。
这次我们选择还原文件和设置。
如下图所示,通过浏览按钮选择要还原的文件是C:,
备份工具显示出了的编录内容,勾选要还原的内容是System
State,选择下一步继续。
还原设置完毕,点击完成结束。
如下图所示,还原开始,还原结束后我们重新启动计算机即可ActiveDirector
y的重建工作。
重新启动Florence后,如下图所示,我们发现ActiveDirectory已经恢复了。
Florence的角色也发生了改变。
尝试让域用户进行登录,一切正常,至此,ActiveDirectory恢复完成!
如果域中唯一的域控制器发生了物理故障,那整个域的资源分配就要趋于崩溃,
因此我们很有必要居安思危,未雨绸缪。使用用备份工具对ActiveDirectory
数据库进行备份,然后在域控制器崩溃时利用备份内容还原ActiveDirectory
是工程师经常使用的灾难恢复手段。这种方案简单易行,很适合小型企业使用,
希望大家都能掌握这种基础手段。下次我们将介绍通过部署额外域控制器来解决
ActiveDirectory的容错和性能问题。
4部署额外域控制器
在前面的博文中我们介绍了域控制器在进行网络资源分配时的核心作用,而且我
们分析了一下一旦域控制器崩溃会导致的灾难场景,上篇博文中我们提出使用对
AD数据备份的方法来进行域控制器的灾难重建,今天我们介绍使用额外域控制
器来避免域的崩溃。
如果域中只有一台域控制器,一旦出现物理故障,我们即使可以从备份还原AD,
也要付出停机等待的代价,这也就意味着公司的业务将出现停滞。部署额外域控
制器,指的是在域中部署第二个甚至更多的域控制器,每个域控制器都拥有一个
ActiveDirectory数据库。使用额外域控制器的好处很多,首先是避免了域控
制器损坏所造成的业务停滞,如果一个域控制器损坏了,只要域内其他的域控制
器有一个是工作正常的,域用户就可以继续完成用户登录,访问网络资源等一系
列工作,基于域的资源分配不会因此停滞。使用域控制器还可以起到负载平衡的
作用,如果公司内只有一个域控制器,而公司用户达到上万人,假设域控制器处
理一个用户登录的时间是0.1秒,那最后一个用户登录进入系统肯定要遭遇一
定的延迟。如果有额外域控制器,那么每个额外域控制器都可以处理用户的登录
请求,用户就不用等待那么长时间了。尤其是如果域的地理分布跨了广域网,例
如域内的计算机有的在北京,有的在上海,有的在广州,那么显然上海用户的登
录请求通过低速的广域网提交到北京的域控制器上进行验证不是一个效率高的
办法,比较理想的办法是在北京,上海,广州都部署额外域控制器以方便用户就
近登录。
域中如果有多个域控制器,那么每个域控制器上都拥有ActiveDirectory数据
库,而且域控制器上的ActiveDirectory内容是动态同步的,也就是说,任何
一个域控制器修改了ActiveDirectory,其他的域控制器都要把这个修改作用
到自己的ActiveDirectory上,这样才能保证ActiveDirectory数据的完整
性和唯一性。否则如果每个域控制器的ActiveDirectory内容不一致,域控制
器的权威性就要受到质疑了。
提到这里,顺便说一下主域控制器这个名词,很多朋友喜欢把域内的第一台域控
制器称为主域控制器,其他的额外域控制器称为辅域控制器,严格来说这种说法
并不严谨。主域控制器这个术语在NT4的环境下是成立的,因为NT4的域把域
控制器分为两类,主域控制器和备份域控制器。两者的区别在于只有主域控制器
才能修改域内的数据,而备份域控制器只有读取域内数据的权限,类似于DNS
的主服务器和辅助服务器的区别。NT4的这种结构我们称之为单主复制,而自
从Win2000使用了ActiveDirectory之后,所有的域控制器都可以自主地修
改ActiveDirectory数据库的内容,现在的域结构我们称之为多主复制。因此,
Win2003域中的第一台域控制器我们称之为主域控制器是不太严谨的,虽然事
实上第一台域控制器比其他的域控制器承担了更多的任务。
这次实验我们准备在域中部署一个额外域控制器,额外域控制器的角色由Firen
ze来承担,拓扑如下图所示,DNS服务器仍然是由一台单独的计算机192.16
8.11.1来承担。
首先我们要在Firenze上设置TCP/IP的属性,如下图所示,我们要确保Firen
ze使用的DNS服务器是正确的,因为Firenze要依靠DNS服务器来定位域控
制器。Firenze不用先加入域,Firenze是工作组内的一台独立计算机也是可以
的。
在Firenze上运行Dcpromo,如下图所示。
出现ActiveDirectory的安装向导,点击下一步继续。
这次我们选择创建现有域的额外域控制器,点击下一步继续。
输入域管理员账号,用以证明自己有权限完成额外域控制器的部署。
Firenze将成为域的额外域控制器。
ActiveDirectory数据库的存储路径使用默认值即可。
Sysvol文件夹的存储路径也可以使用默认值。
输入目录服务还原模式的管理员密码,以后我们从备份还原ActiveDirectory
时可以用到。
确认所有的设置无误,点击下一步继续。
如下图所示,Firenze通过网络从第一个域控制器Florence那里复制Active
Directory到本机。
ActiveDirectory安装完毕,点击完成后Firenze会重新启动,至此,额外域
控制器部署结束。
Firenze部署完毕后,我们打开Firenze上的ActiveDirectory用户和计算机,
如下图所示,我们可以看到Firenze已经把Florence的ActiveDirectory内
容复制了过来。
检查DNS服务器,可以看到DNS中已经有了Firneze的SRV记录。
至此,部署Firenze作为额外域控制器成功完成,从过程来看并不复杂。现在
我们请大家考虑一个问题,Florence和Firenze是现在域中的两个域控制器,
Florence和Firenze的ActiveDirectory内容应该完全一致,但如果现
在Florence和Firenze的ActiveDirectory内容出现了差异,那应该以
哪个域控制器的内容为主呢?问题的答案将在下篇博文中揭晓。
5ActiveDirectory的授权还原
在上篇博文中我们介绍了如何在域中部署额外域控制器,额外域控制器有很多好
处,例如可以平衡用户对AD的访问压力,有利于避免唯一的域控制器损坏所导
致域的崩溃。从上篇博文中我们得知,域内所有的域控制器都有一个内容相同的
ActiveDirectory,而且ActiveDirectory的内容是动态平衡的,也就是说任
何一个域控制器修改了ActiveDirectory,其他的域控制器都会把这个Active
Directory的变化复制过去。
今天我们要考虑这么一个问题,如果域中有多个域控制器,但他们所拥有的Act
iveDirectory内容不一致,那么应该以哪个域控制器的ActiveDirectory内
容为准?有的朋友可能会疑惑,怎么会出现这种情况呢?其实假如有个域控制器
由于更换硬件导致有几天时间没有在线,而其他的域控制器在这段时间对Activ
eDirectory进行了修改,那么当这个域控制器重新上线时就会出现我们所提到
的这种情形。
当域控制器们发现彼此的ActiveDirectory的内容不一致,他们就需要分析一
下ActiveDirectory的优先级,从而决定以哪个域控制器的ActiveDirector
y内容为准。ActiveDirectory的优先级比较主要考虑三方面因素,分别是:
1版本号
2时间
3GUID
版本号指的是ActiveDirectory对象的修改次数,版本号高者优先。例如域中
有两个域控制器A和B,A域控制器上的用户administrator口令被修改了4
次,最后被改为12345;B域控制器上的用户administrator口令被修改了5
次,最后被改为123456。那么A和B发现他们的ActiveDirectory中admi
nistrator口令不一致,这时A和B会分析版本号,发现版本号分别是4和5,
这时A就会把B的ActiveDirectory内容复制到本机的ActiveDirecotry中。
经过这么一轮复制后,A和B的ActiveDirectory内容就达到了新的平衡,他
们ActiveDirectory中所有对象的版本号也都完全一致了。
如果A和B两个域控制器都是对administrator口令修改了4次,那么版本号
就是相同的。这种情况下两个域控制器就要比较时间因素,看哪个域控制器完成
修改的时间靠后,时间靠后者优先。这里我们顺便提及一下,ActiveDirector
y中时间是个非常重要的因素,域内计算机的时间误差不能超过5分钟,而且A
ctiveDirectory还有一个墓碑时间的限制,这些我们以后再详细加以说明。
如果A和B两个域控制器的版本号和时间都完全一致,这时就要比较两个域控
制器的GUID了,显然这完全是个随机的结果。一般情况下时间完全相同的非
常罕见,因此GUID这个因素只是一个备选方案。
说了这么多的ActiveDirectory优先级原理,我们引入一个具体的例子让大家
加深理解。如下图所示,域中有两个域控制器Florence和Firenze。现在域中
有一个用户张建国,我们在Firenze上对ActiveDirectory已经进行了备份。
现在我们在Florence上不小心把张建国误删除了,显然Firenze会很快把Act
iveDirectory中的张建国也删除,以便和Florence的ActiveDirectory保
持一致。那么我们应该怎么做才能把张建国给恢复回来呢?
很多朋友会很自然地想到利用Firenze上的ActiveDirectory备份来解决这个
问题,既然备份中有张建国,那么把备份还原回来不就OK了吗?这个问题没这
么简单,如果域中只有一个域控制器,那么用备份还原是成立的。但现在域中有
两个域控制器,我们就要好好考虑一下了。Firenze从备份还原后,Florence
和Firenze的ActiveDirectory内容就不一样了,那么Florence和Firenze
的ActiveDirectory哪个优先级更高呢?哦,不对,似乎是Florence的版本
号更高一些!那我们就可以从理论上得出结论,Firenze从备份还原之后,Acti
veDirectory中已经拥有了张建国的用户账号,但Firenze和Florence比较
了ActiveDirectory之后,Firenze认为Florence的ActiveDirectory比自
己的优先级高,因此Firenze会把Florence的ActiveDirectory复制过来,
这样一来,刚被还原的张建国肯定会被重新删除掉!
难道我们对此就无能为力了吗?不是的,在Firenze从备份还原ActiveDirec
tory之后,我们可以利用一个工具来修改ActiveDirect
ory对象的版本号,让Firenze的版本号大于Florence的版本号,这样我们就
可以利用游戏规则顺利地达到目的了。这种还原方式我们称为授权还原,下面我
们通过一个实例为大家演示一下具体过程。
现在的场景是Firenze已经对ActiveDirectory进行了备份,备份中包含了域
用户张建国。在备份之后我们误删除了张建国,现在我们在Firenze上开始利
用备份进行主要还原。首先在Firenze上重启计算机,BIOS自检后按下F8,
如下图所示,选择进入目录服务还原模式。目录服务还原模式可以把ActiveDi
rectory挂起,适合我们从备份还原ActiveDirectory。
进入目录服务还原模式后,我们从附件中启动备份工具,如下图所示,选择下一
步继续。
选择还原文件和设置。
选择从备份还原ActiveDirectory。
点击确定开始ActiveDirectory的还原。
如下图所示,还原结束后,千万别选择重启计算机,我们还没有修改Active
Directory的版本号呢,确保选择“否”。
还原结束后在Firenze的命令提示符下运行NTDSUTIL,如下图所示。
运行了NTDSUTIL后,我们可以输入?来获取当前环境下的可执行命令帮助,
如下图所示,我们运行Authoritativerestore来修改AD对象的版本号。
如下图所示,我们可以简单地运行restoredatabase,这样整个AD内所有对
象的版本号都将加到最大,版本号加到最大是什么含义呢?微软规定,AD对象
的版本号每天最多可以增加10万。在本例中我们不需要把AD中所有对象的版
本号都增加到最大,只要修改张建国的版本号就可以了。因此我们可以使用Re
storeObject命令只针对张建国的版本号进行修改,那如何在AD中表示张
建国呢?按照目录对象的命名规范,张建国隶属于域中的人事
部组织单位,那我们描述张建国就应该使用cn=张建国,ou=人事部,dc=a
dtest,dc=com。如下图所示,我们输入修改指令后观察一下运行的效果。
系统询问是否执行授权还原,我们选择“是”。
如下图所示,授权还原成功完成,用quit命令退出NTDSUTIL。
授权还原结束后我们重启Firenze,如下图所示,Firenze的AD中已经重新拥
有了用户张建国,修改版本号成功了。
6离线部署额外域控制器
在上篇博文中我们介绍了部署额外域控制器的意义,同时介绍了如何在线部署额
外域控制器,也就是额外域控制器通过网络以在线方式从复制伙伴那里获取Act
iveDirectory数据。在线部署额外域控制器是我们部署额外域控制器时的首
选,它方便易行,在拥有快速网络连接的环境下使用非常合适。但我们也要考虑
另外一种场景,域控制器之间是通过低速网络连接的!如果域控制器之间的网络
质量不理想,例如有的域控制器需要部署到非洲,那我们就不能希望获得一个高
速,稳定,可靠的通讯网络。在这种情况下,如果我们还使用在线方式部署额外
域控制器,就有可能事倍功半!那我们遇到这种情况应该如何解决呢?我们可以
考虑使用离线方式来部署额外域控制器,也就是说额外域控制器在复制Active
Directory时不通过网络从其他的域控制器复制,而是从ActiveDirectory的
离线文件复制,这样就可有效避免对网络环境的依赖。
那我们如何获得ActiveDirectory的离线文件呢?我们可以从ActiveDirect
ory的备份中得到。具体是这样的,我们对ActiveDirectory备份之后,把离
线部署额外域控制器所需要的文件从备份中提取出来,然后通过各种手段传送到
需要部署额外域控制器的计算机上。例如我们可以把离线文件刻录到光盘上,然
后在出差时带过去;或者可以放在一个支持断线续传下载的服务器上,让对方通
过网络慢慢下载。对方得到了ActiveDirectory的离线文件后,就可以通过D
cpromo来调用离线文件从而完成额外域控制器的部署。
我们通过一个具体实例加以说明,实验拓扑如下图所示,Florence是域控制器,
Firenze是准备用离线方式部署的额外域控制器。
具体的部署过程分为下列两个阶段:
1、获得ActiveDirectory的离线文件
2、离线部署额外域控制器
一获得ActiveDirectory的离线文件
首先我们在域控制器Florence上对ActiveDirectory进行备份,备份工具使
用系统自带的NTBACKUP,具体的备份过程参见前期博文,在此不在赘述。Ac
tiveDirectory的离线数据来源于对ActiveDirectory的备份,但大家要注意
的是,由于NTBACKUP备份的粒度并不太细致,因此我们对SystemState
进行备份时,还备份了除ActiveDirectory之外的其他内容。如下图所示,我
们发现备份的SystemState的内容分为五部分,分别是ActiveDirectory,
BootFiles,COM+ClassRegistrationDatabase,Registry和SYSVOL。
其实我们用离线方式部署额外域控制器,只需要ActiveDirectory,Regis
try和SYSVOL三部分即可。
下图是备份SystemState后生成的备份文件,我们可以看到备份文件的大小
是480M左右,其实其中只有少部分数据是我们需要的。
我们准备从备份中提取ActiveDirectory的离线数据,我们使用的工具还是N
TBACKUP-系统自带的备份工具,如下图所示,我们在Florence上启动NTB
ACKUP后,选择“还原文件和设置”。
选择对SystemState的备份文件进行还原,从编录结果中我们可以看到Syst
emState的备份中包含了五部分内容。
如下图所示,千万不要选择完成,一定要点击“高级”按钮进行设置,否则系
统会把备份文件还原到原位置。
我们不能把备份还原到原位置,而是应如下图所示还原到备用位置,我们选择的
备用位置是C:ADBAK,这其实就是把备份文件中的内容展开到C:ADBAK
中。
还原选项使用默认值即可。
仍然保留默认设置。
如下图所示,还原顺利完成。
看看展开后的备份文件是什么内容,如下图所示,我们可以看到备份文件被展开
成了五个目录,每个目录存储备份中的一部分内容。离线部署其实只需要Acti
veDirectory,Registry和SYSVOL三个文件夹的内容,这三个文件夹的
数据大概是40M左右,相比较备份文件的480M体积确实缩水了不少。我们把
这三个文件夹的内容传送到要部署成额外域控制器的计算机上,至此结束了Act
iveDirectory离线文件的准备。
二离线部署额外域控制器
拿到了ActiveDirectory的离线文件后,我们就可以在Firenze上部署额外域
控制器了,如下图所示,我们在Firenze上运行Dcpromo/adv。
出现ActiveDirectory安装向导,点击下一步继续。
选择成为额外域控制器。
选择从备份文件复制ActiveDirectory,备份文件的路径是C:ADBAK,里面
包括了从Florence复制来的三个文件夹,ActiveDirectory,Registry和SY
SVOL。
是否将Firenze设置成全局编录取决于实际需求,在此实验中我们不需要把Fir
enze配置成全局编录服务器。
输入域管理员的口令用以在Firenze上创建ActiveDirectory。
输入还原模式口令,下一步继续。
如下图所示,Firenze上开始离线部署额外域控制器。
ActiveDirectory创建完成,重启后就可以发现Firenze已经成为
了域控制器,至此,利用备份离线部署额外域控制器顺利完成!
7ActiveDirectory的脱机碎片整理
ActiveDirectory是一个被设计用于查询的非关系型数据库,ActiveDirecto
ry使用一段时间后,需要对数据库内容进行维护,以减少数据碎片及提高查询
效率,今天我们就为大家介绍一下如何对ActiveDirectory的数据库进行离线
维护。
ActiveDirectory创建时默认的数据库及事务日志的存放路径是C:Windows
NTDS,我们打开前文中创建的域控制器Florence,定位到C:WindowsNT
DS目录下,先来了解一下下图中各文件的作用。其中的是Activ
eDirectory的数据库文件,是事务日志文件,事务日志文件记录
了数据库内容的变更,非常重要。默认的事务日志文件大小只有10M,如果事
务日志文件已经记录满了,系统就会自动地生成用以继续存储
事务日志,如果也存满了,就会接下来生成,
以此类推。顺便提一下,在生产环境下,我们应该把数据库文件和事务文件分开
存储,这样既可以提高性能,也可以增加数据安全性,但Win2003要求Act
iveDirectory的数据库和事务日志都存储在同一个硬盘上,不像Win2000
中ActiveDirectory的数据库和事务日志可以存储在不同的硬盘上。
是事务日志的检查点文件,记录了硬盘上的ActiveDirectory和内
存中ActiveDirectory在内容上的差异,一般此文件用于ActiveDirectory
的初始化或还原。和是系统保留的事务日志文件,这
两个文件一共占用了20M空间,主要目的就是为了给ActiveDirectory的事
务日志预留20M空间,避免当硬盘空间用光后无法正常关机。
ActiveDirectory使用一段时间后,会产生数据碎片,表现为ActiveDirect
ory占用的空间增大,响应速度降低,这时就需要对ActiveDirectory做一些
碎片整理了。ActiveDirectory的碎片整理分为在线和离线两部分,默认情况
下在线整理会12小时进行一次。在线整理的好处是在数据库维护的过程中不需
要关闭ActiveDirectory,用户不会受到影响;缺点是在线整理只能在已分配
的数据库空间内进行碎片整理,无法减少数据库占用的空间。如果ActiveDir
ectory的规模不大,数据变更不频繁,我们使用默认的在线整理也就可以了。
如果ActiveDirectory的数据库很大,达到上G的规模,而且数据频繁更改,
这时我们就要使用今天提到的离线维护了。离线维护需要对ActiveDirectory
进行脱机处理,然后再进行ActiveDirectory的碎片整理,这个过程中Activ
eDirectory无法使用,基于AD的业务系统会受到影响,因此建议在工作空闲
时间例如晚上进行。ActiveDirectory进行脱机碎片处理后,可以有效地减少
ActiveDirectory数据库的大小,提高查询速度,有的单位经过第Active
Directory进行脱机碎片处理后,可以把ActiveDirectory的大小从11G降为
6G!因此对ActiveDirectory更新频繁,而且ActiveDirectory内包含海量
数据的单位来说,离线维护还是很有必要做的。
如何才能对ActiveDirectory进行离线的脱机碎片整理呢?我们以域控制器Fl
orence举例为大家演示应该如何操作,首先我们在Florence上要进入目录服
务还原模式,在这个模式下,ActiveDirectory
将被脱机挂起,然后我们就
可以对离线的ActiveDirectory数据库进行处理了。如下图所示,我们重启Fl
orence,然后在自检结束后按F8键选择进入“目录服务还原模式”。
进入目录服务恢复模式后,我们输入命令NTDSUTIL,如下图所示,我们将使
用NTDSUTIL对ActiveDirectory进行碎片整理。
如下图所示,我们在NTDSUTIL中输入Files。
如下所
示,我们输入CompactToC:,意思是对ActiveDirectory数据库清理碎片
后压缩到C盘的根目录下,这样我们将在C盘的根目录下得到一个消除了ActiveD
irectory碎片的。
如下图所示,大家可以发现真正压缩ActiveDirectory的是,
这个工具大家以后也会经常使用,而且大家会在Exchange中发现有类似的工
具,这主要是因为ActiveDirectory,Exchange,WINS等服务器都使用了
类似的非关系型数据库引擎。
如下图所示,压缩成功后我们用新的覆盖了原来的ActiveDirectory
数据库文件,同时删除了原有的日志文件,但仍然保留文件。
如下图所示,这就是我们进行碎片整理后的ActiveDirectory文件,如果在一
个大型网络中,经过这种离线整理后可以很明显地看出对磁盘空间的释放。
对ActiveDirectory进行脱机碎片处理只能在单台域控制器上分别进行,对
ActiveDirectory压缩不会影响ActiveDirectory现有数据,也不会影响Ac
tiveDirectory的复制。
8ActiveDirectory的复制拓扑
在前面的博文中我们在域中部署了额外域控制器,而且我们已经知道每个域控
制器都有一个内容相同的ActiveDirectory数据库,今天我们要讨论一下额外域
控制器在进行ActiveDirectory复制时所使用复制拓扑。
在NT4的时代,域控制器被分为两类,PDC和BDC。PDC是主域控制器的缩
写,BDC是备份域控制器的缩写。每个域中只能有一个PDC,BDC可以有多个,
BDC的目录数据是从PDC复制而来。只有PDC才可以更改域中的用户账号,计
算机账号等目录数据,BDC的内容是只读的!这种复制模型我们称为单主复制,
这种模型我们并不陌生,类似于DNS服务器的辅助服务器和主服务器的关系。
单主复制模型比较简单,管理难度不大,但较容易构成单点故障。
从Win2000开始,ActiveDirectory开始使用多主复制的模型,也就是说每个
域控制器都可以自主地修改ActiveDirectory的内容,域中不再有PDC和BDC的
区别了。Win2003使用了和Win2000同样的多主复制模型,而Win2008则在多
主复制的基础上又增加了一个RODC,也就是只读域控制器,可以看出Win2008
试图在多主复制模型中增加一些单主复制的元素,因为RODC的设计理念显然和
BDC是有些关联的。
现在我们知道了Win2003的ActiveDirectory中使用了多主复制的模型,也
就是任何一个域控制器都可以修改ActiveDirectory。为了维护ActiveDirectory
的权威性,显然所有域控制器上的ActiveDirectory内容应该都相同。那么,如
果一个域控制器修改了自己的ActiveDirectory,修改的的内容是如何复制到其他
域控制器上的呢?这就是我们今天要讨论的内容,ActiveDirectory的复制拓扑!
ActiveDirectory的复制拓扑是一个比较复杂的问题,今天我们只讨论在同一
域中域控制器之间的复制拓扑。当域中的域控制器数量发生变化,例如增加或减
少了域控制器,域控制器上的进程KCC就会进行ActiveDirectory复制拓扑的计
算。KCC被翻译为知识一致性验证器,我们在任务管理器的进程列表中看不到K
CC,因为它属于LSACC进程的一部分。KCC可以自动计算出域控制器进行复制时
所使用的拓扑,当域控制器数量较少时,KCC倾向于在域中使用环形拓扑进行A
ctiveDirectory复制,也就是说当一个域控制器的ActiveDirectory内容发生变化
时,这个更改不会同时传递给其他所有的域控制器,而是要沿着KCC设计的环形
拓扑一一传递下去。而且为了实现冗余以及提高效率,KCC设计的拓扑还是双环
拓扑,下图就是一个域控制器的复制拓扑示意图,从图中可以看到,每个域控制
器都有两个复制伙伴,ActiveDirectory的复制沿着顺时针和逆时针两个方向进
行。
域控制器复制ActiveDirectory时,一般会使用“带通知的拉复制”,也就是
说,当DC1修改了ActiveDirectory后,DC1会在5分钟内通知自己的复制伙伴
DC2,“快来,我的AD中有些新内容”。DC2收到通知后,会启动一个Active
Directory的复制请求,以增量复制的方式从DC1把ActiveDirectory复制到DC2。
如果ActiveDirectory中发生了一些紧急事件,例如用户口令被修改,那么此时
域控制器将不受5分钟的时间限制,而是在最短时间内把ActiveDirectory复制
给PDC操作主机。如果一个域控制器在一个小时之内都没有收到复制伙伴发来
的通知,它就会向复制伙伴发出一个查询,询问复制伙伴是否在线。
我们通过一个实例来观察一下域控制器的复制拓扑,域中有Flor
ence,Firenze和Berlin三个额外域控制器,我们在Florence打开ActiveDirector
y站点和服务,可以看到每个域控制器的复制伙伴。如下图所示,Florence的复
制伙伴是Berlin和Firenze。
而Firenze的复制伙伴是Florence和Berlin。
Berlin的复制伙伴是Florence和Firenze。
看完三个域控制器的复制伙伴,我们很容易勾勒出ActiveDirectory的复制拓
扑,这是一个标准的双环拓扑,拓扑如下图所示。
双环拓扑非常优美,但并非适合所有场合!在域控制器较多的网络中,标准
的环形拓扑就不太合适,因为域控制器复制ActiveDirectory时有个严格的限制,
那就是从源域控制器到目标域控制器不能超过三个域控制器的间隔。具体来说
就是如果DC1的ActiveDirectory发生了变化,那么DC1可以复制给DC2,DC2
可以接着复制给DC3,DC3还可以复制给DC4,但DC4就不能再复制给DC5了!
因为这时从DC1到DC5中间间隔的域控制器已经超过了三个。微软进行这个限
制,估计是为了避免在大型网络中进行ActiveDirectory复制时环形拓扑导致的
延迟问题,试想一下,如果一个大型网络中有100个域控制器,域控制器复制的
平均间隔为5分钟,那么从第一个域控制器复制到最后一个域控制器可能需要大
约500分钟!这种延迟是不可接受的,因此在大型网络中KCC会使用网状拓扑,
网状拓扑就不像环形拓扑那样有规律了,每个域控制器可能会有多个复制伙伴,
看起来并不像环形拓扑那样有规律。域控制器的复制拓扑最好由KCC来规划,当
然,也可以自己指定域控制器的复制伙伴,例如我们想指定Florence的复制伙伴,
我们可以如下图所示,在Florence上选择“新建ActiveDirectory连接”。
如下图所示,Florence可以从域控制器列表中选择自己的复制伙伴。这样一
来,我们就完成了对Florence复制伙伴的手工指定。
域控制器的复制拓扑最好由KCC来自动计算,域控制器一旦复制拓扑出现问
题,处理时需要相当的耐心,而且要结合DNS的SRV记录来进行排错,可能还
需要对ActiveDirectory数据进行手工处理。以后有机会我们会介绍一些Active
Directory排错的高级工具以及实际案例供大家参考,希望大家都能够处理好这个
问题。
9ActiveDirectory操作主机详解
在前面的博文中,我们已经了解到每个域控制器都能自主修改ActiveDirect
ory,而且修改后的结果会被其他的域控制器所承认。从这个角度讲,域控制器
之间的地位是平等的,但我们决不能认为域控制器之间是没有区别的!事实上,
域中的第一个域控制器往往比其他的域控制器承担了更多的任务。
有些企业中部署了多个域控制器之后,就开始忽略第一个域控制器的作用,
有时甚至可能会一不经意间把第一个域控制器给处理掉了。但这些企业的用户很
快就会发现域中会出现一些异常现象,例如无法创建域用户账号,无法安装Exc
hange,无法部署子域等等。原因很简单,第一个域控制器承担的任务并没有被
转嫁到其他的域控制器上,而这些任务对一个域来说又是不可或缺的,因此我们
才会面临如此多的问题。那么,究竟第一个域控制器和其他的域控制器相比承担
了哪些更多的任务呢?这就是我们今天要讨论的话题,操作主机!
操作主机是由域控制器来扮演的一种角色,操作主机角色共有五种,分别是
PDC主机,RID主机,结构主机,域命名主机和架构主机,今天的这篇博文将分
别介绍五种操作主机的用途。
我们先来介绍PDC主机,PDC是主域控制器的缩写,在NT4时代,域控制器
被分别PDC(主域控制器)和BDC(备份域控制器),只有PDC才可以修改目录
数据库,BDC的数据库是从PDC复制而来的。从Win2000开始,所有的域控制
器都可以修改ActiveDirectory了,那为什么Win2003的操作主机中还有PDC主
机这个角色呢?原因是这样的,微软为了保护用户的前期投资,允许NT4服务
器称为Win2003域中的额外域控制器,但NT4充当域控制器时一定要和域中的
PDC联系,这种情况下PDC主机就要挺身而出,以主域控制器的身份和NT4的
域控制器通讯。这就是PDC主机的第一个用途,兼容NT4服务器。
PDC主机的第二个用途是可以优先成为主浏览器,这里说的浏览器可不是上
网冲浪用的浏览器,而是网络中的一种计算机角色。我们都知道打开网上邻居后
可以看到当前网络中有多少台计算机,双击计算机名还可以看到这台计算机提供
的共享资源。这些网络资源列表是由谁来提供呢,在微软网络中被一种称为主浏
览器的计算机来提供。那么哪些计算机可以成为主浏览器呢?只要操作系统的版
本在Windowsworkgroup3.1以上的计算机都有机会成为主浏览器。如果一个网
络中的多台计算机都希望成为主浏览器,那么这些计算机就会通过“选举”来解
决问题,我们有时用抓包工具可以抓到电子选举包就和这个过程有关。每台计算
机选举时首先比较操作系统版本,版本新的优先成为主浏览器,例如Win2003
优于Win2000。如果操作系统版本相同,再比较谁是域控制器,域控制器比普通
的计算机优先。如果参与选举的有多个域控制器,那么PDC主机会优先。最后
再多说一句,如果一个广播域内有多个域,而且有多个PDC操作主机,那么它
们之间又如何进行主浏览器的选举呢?它们之间会通过GUID来选出最后的胜利
者。
PDC主机的第三个用途就是ActiveDirectory的优先复制权,正常情况下,A
ctiveDirectory的复制周期是5分钟,但如果ActiveDirectory中发生了一些紧急
事件,例如修改了用户口令。这种情况下源域控制器就会在最短时间内通知PD
C主机,由PDC主机来统一管理这些ActiveDirectory的紧急事件。如果一台域
控制器发现用户输入的口令和ActiveDirectory中存储的口令不一致,域控制器
考虑到有两种可能性,一种可能是用户输入错误,一种可能是用户输入的口令是
正确的,但是自己的ActiveDirectory还没有接收到最新的变化。域控制器为了
避免自己判断错误,就会向PDC主机发出查询,请PDC主机来验证口令的正确
与否,因为前面已经提到,任意一个域控制器修改了用户口令,都会在最短时
间内通知PDC主机。
PDC主机除了上述的几种用途,还可用于充当域内的权威时间源,同时PDC
主机也是组策略的首选存储地点。顺便提一下,PDC主机的作用级别是域级别,
也就是说,在一个域中只能有一台域控制器充当PDC主机。
介绍完PDC主机的作用后,我们来介绍RID主机。RID是SID的一部分,什
么是SID呢?SID是安全标识符(SecurityIdentify)的缩写,当我们在域中创建用
户账号或计算机账号时,操作系统会为被创建的账号建立一个对应的SID,也就
是说,SID真正对应了用户账号或计算机账号。一个域用户对应的SID格式是这
样的,S-1-5-21-D1-D2-D3-RID,S是SID的缩写,1是SID的版本号,5代表授权
机构,21代表子授权,D1-D2-D3是三个数字,代表对象所在的域或计算机,RI
D是对象在域中或计算机中的相对号码。以大家熟悉的管理员账号为例,管理员
的SID就是S-1-5-21-3855104193-346434734-500,其中的RID是50
0。
RID是SID的组成部分,RID主机的作用就是为ActiveDirectory提供一个可
用的RID池(默认500个),而且当池中的RID被消耗到一定程度后再自动补充
满。如果RID主机出现故障,显然会对我们创建大量的用户账号造成麻烦。和P
DC主机类似,RID主机的作用级别也是域级别。
结构主机的作用是负责对跨域对象的引用进行更新,假如A域的一个用户加
入了B域的一个组,B域的结构主机就会负责关注A域的这个用户是否发生了什
么变化,例如是否被删除了,结构主机的工作可以确保域间对象引用的可操作
性。如果是一个单域,基本上用不着结构主机做什么工作。如果在一个多域的林
环境,有一点要切记,结构主机不要和GC(全局编录)放在同一台域控制器上,
否则结构主机无法正常工作。结构主机的作用级别也是域级别。
下一个要介绍的操作主机是域命名主机,这个操作主机的作用级别是林级别
的!域命名主机主要负责控制域林内域的添加或删除,也就是说如果在域林内添
加一个新域,必须由域命名主机判断域名合法,操作才可以继续。如果域命名主
机不在线,我们就无法完成域林内新域的创建。除了对域名做出诠释,域命名主
机还要负责添加或删除描述外部目录的交叉引用对象。
最后我们要介绍的是架构主机,架构主机的作用级别同样是林级别。架构主
机的作用非常重要,如果要修改ActiveDirectory的架构,我们只能从架构主
机上进行操作。微软的很多高级服务器产品在部署时都需要修改ActiveDirect
ory的架构,例如Exchange,OfficeCommunicationsServer,SMS等。
以最著名的Exchange为例,如果我们在域中部署Exchange时无法在线联系
上架构主机,那Exchange的部署就无法继续,MCSE的考题中曾经考过这个
知识点。
从上面的介绍中我们可以看出,操作主机都有各自的职能,一旦操作主机有
问题我们就会遇到种种麻烦,因此我们在下篇博文中将介绍如何转移操作主机角
色以及如何夺取操作系统角色,敬请期待。
10实战操作主机角色转移
上篇博文中我们介绍了操作主机在ActiveDirectory中的用途,今天我们通
过一个实例为大家介绍如何实现操作主机角色的转移,这样如果ActiveDirector
y中操作主机角色出现了问题,我们就可以用今天介绍的知识来进行故障排除。
我们首先要明确一个重要原则,那就是操作主机角色有且只能有一个!如
果操作主机角色工作在林级别,例如架构主机和域命名主机,那在一个域林内只
能有一个架构主机和域命名主机。如果操作主机角色工作在域级别,例如PDC
主机,结构主机和RID主机,那就意味着一个域内只能有一个这样的操作主机角
色。
我们的实验拓扑如下图所示,域内有两个域控制器,Florence和
Firenze。Florence是域内的第一个域控制器,目前所有的操作主机角色都在Flor
ence上,我们通过实验来介绍如何在Florence和Firenze间切换操作主机角色。
其实当我们用Dcpromo卸载域控制器上的ActiveDirectory时,这个域控制
器会自动把自己所承担的操作主机角色转移给自己的复制伙伴,这个过程完全不
需要管理员的干预。但如果我们希望指定一个域控制器来负责操作主机角色,我
们就需要手工操作了。我们首先为大家介绍如何用MMC控制台把五个操作主机
角色从Florence转移到Firenze上。
一从Florence转移到Firenze
在Florence上打开ActiveDirectory用户和计算机,如下图所示,右键点击
域名,在菜单中选择“操作主机”。
如下图所示,我们发现可以转移三个操作主机角色,分别是PDC主机,RID主机
和结构主机,但奇怪的是,我们希望把操作主机角色从Florence转移到Firenze,
但为何工具中显示的是我们只能把操作主机角色从Florence转移到Florence呢?
上述问题很容易解释,如果我们希望把Firenze作为操作主机角色转移的目标,
那我们就需要把域控制器的焦点首先指向Firenze。从下图所示,在ActiveDirec
tory用户和计算机中右键单击,选择“连接到域控制器”,从域控制
器列表中选择Firenze即可。
我们把域控制器的焦点指向Firenze后,接下来就发现可以把操作主机角色从Fl
orence转移到Firenze了,如下图所示,我们点击“更改”,准备把RID主机角
色从Florence转移到Firenze。系统弹出窗口询问是否确定进行操作主机角色的
转移,我们选择“是”。
通过上述过程,我们可以非常轻松地把RID主机角色从Florence转移到Firenze,
如下图所示,操作主机角色的转移已经成功。用同样的方法,我们可以很轻松地
把PDC和结构主机也转移到Firenze上。
转移了RID主机,PDC主机和结构主机后,我们来尝试一下域命名主机。在Flor
ence上打开ActiveDirectory域和信任关系,注意先把域控制器的焦点指向Firen
ze,然后如下图所示,右键单击ActiveDirectory域和信任关系,从菜单中选择
“操作主机”。
如下图所示,我们点击“更改”把域命名主机角色从Florence转移到Firenze,
整个过程实现起来非常简单。
如下图所示,域命名主机角色已经转移到Firenze上了。
最后我们要转移的操作主机角色是架构主机,架构主机由于角色非常重要,微软
甚至没有为我们预设管理工具,因此我们首先要通过注册动态链接库来获得转移
架构主机所需要的管理工具。如下图所示,我们运行,
系统提示注册动态链接库成功。
注册了动态链接库后,我们运行MMC,在文件菜单中选择“添加/删除管理单元”,
这时我们会发现可以添加一个名为“ActiveDirectory架构”的管理单元,这就是
注册了动态链接库的作用。使用这个ActiveDirectory架构管理单元,如下图所
示,选择“操作主机”进行架构主机的转移,同样不要忘记在之前把域控制器焦
点指向Firenze。
如下图所示,点击“更改”把架构主机角色转移到Firenze上。
从下图的结果来看,架构主机的转移是成功的,至此,我们完成了五个操作主机
角色的转移。
二从Firenze转移到Florence
现在五个操作主机角色都集中在Firenze上,我们再为大家介绍一种方法把操作
主机角色完璧归赵,还给Florence,这种方法就是使用我们非常熟悉的工具NTD
SUTIL。如下图所示,运行ntdsutil,然后输入roles,准备进行操作主机角色的转
移。
如下图所示,在Roles状态下,我们首先要使用connections命令来连接到特定
的域控制器,连接到哪个域控制器呢?应该连接到操作主机转移的目标域控制
器,在我们这个例子中应该是Florence,如图所示,我们输入命令connecttos
erverFlorence。
连接到Florence后,如下图所示,我们用quit命令返回上级菜单,用?列出当
前状态下的所有可执行指令,我们发现转移五个操作主机角色只需要简单执行五
条命令即可,这五条指令分别是:
Transferdomainnamingmaster转移域命名主机
Transferinfrastructuremaster转移结构主机
TransferPDC转移PDC主机
TransferRIDmaster转移RID主机
Transferschemamaster转移架构主机
还有五条命令是强行把连接到的域控制器指定为操作主机角色,这个很适合在操
作主机离线时进行操作,如果我们不小心把操作主机所在的域控制器给格式化
了,我们就可以利用这些指令强行把一个域控制器指定为操作主机。这五条指令
分别是:
Seizedomainnamingmaster指定域命名主机
Seizeinfrastructuremaster指定结构主机
SeizePDC指定PDC主机
SeizeRIDmaster指定RID主机
Seizeschemamaster指定架构主机
如下图所示,我们执行转移操作主机角色的五条指令,很轻松地把操作主机角色
从Firenze又转到了Florence上。
在本篇博文中,我们可以利用MMC和NTDSUITL进行操作主机角色的转移,
也可以在操作主机离线的情况下进行操作主机角色的指定,掌握了这些,基本
上就可以应对工作中对操作主机的需求了。
11什么是站点
谈到ActiveDirectory中的站点,很多ActiveDirectory的初学者都会深感头
疼,为什么呢?搞不清楚这个站点究竟是起什么作用。有很多同学都问过这样的
问题,站点和域有什么区别?到底是域大还是站点大?有了域为什么还要有站
点?…..本文将尝试为大家介绍站点的概念及设计初衷,让大家能够更好地理解
站点,运用站点。
域是共享用户账号,计算机账号及安全策略的一组计算机,这个定义是基于
逻辑因素考虑的,只要用户和计算机在同一个ActiveDirectory内,我们就认为
他们都在域的安全边界之内。我们从域的定义中可以看到,域没有考虑网络速度
等物理因素,无论计算机和域控制器之间是一个快速的物理连接还是一个慢速的
物理连接,域都会一视同仁,完全把连接速度视若无物。但在实际的生产环境中
我们就会发现如果不考虑网速这样的物理因素,我们会在管理域时遇到很多麻
烦。我们通过一个例子加以说明,如下图所示,某域的域控制器分布在北京,上
海两处,北京有A,B,C三台域控制器,上海有D,E,F三台域控制器。北京和上海
的本地局域网都是千兆以太网,北京和上海之间是一条128K的专线。
现在我们要考虑这么一个问题,如果域控制器A更改了ActiveDirectory,那
么如果才能用最有效率的方法把这个AD的变化复制到其他五个域控制器上呢?
显然域控制器A应该先把更改复制到同一高速局域网内的B和C,然后再利用慢
速的广域网链接复制到上海的一个域控制器上,例如复制到D,最后再由D复制
到E和F。域控制器如果使用我们规划的这种复制拓扑,那当然好,在这种复制
拓扑中数据只经过两地间的慢速链路传递了一次。但问题是域如果不考虑速度因
素,未必能作出这种拓扑,万一KCC决定使用的复制拓扑是先从A到D,再从D
到B,然后B到E,再E到C,最后从C到F,那我们就要崩溃了。这样的话六个
域控制器之间的AD复制要沿着两地间的慢速链路走五次,无论如何都让我们无
法接受!从这个例子中我们已经看到了速度因素的重要性,再顺着这个例子引申
一下,用户每天登录到域进行身份验证,显然北京的用户应该登录到北京的域控
制器,上海的用户应该登录到上海的域控制器,这样效率才会比较高,如果北京
的用户每天都到上海的域控制器进行身份验证,显然不是一件好事。
从上面的例子中我们发现,在日常的运维工作中是不能把速度因素透明处理
的,我们必须考虑到计算机之间的连接速度!正是基于这种考虑,微软才引入了
站点对计算机进行管理。站点的概念其实很简单,站点就是高速相连的一组计算
机!从这个概念来看,站点强调了速度这个物理因素,域则是强调要共享Active
Directory这个逻辑因素,把站点和域结合起来对计算机从物理和逻辑两个角度
进行管理,是微软的一个很好的构思。值得一提的是,微软这种管理思路并非罕
见,例如Exchange中也有管理组和路由组的概念,管理组和路由组其实类似于
域和站点的关系,也是一个从逻辑角度进行管理,另一个从物理角度进行管理。
有了站点帮助管理,我们处理前面提到的那个例子就容易多了,从站点的定
义来看,由于北京和上海之间存在一条慢速链路,因此我们应该把北京的计算机
放到一个站点内,把上海的计算机放到另一个站点内。这样的话,北京和上海的
用户在登录时会优先选择本站点内的域控制器登录,KCC在规划复制拓扑时也会
自动地优先考虑在本站点内的域控制器之间进行AD复制。更好的是,如果AD
需要垮站点复制,AD内容还可以经过压缩后再进行复制,显然站点在设计时已
经充分考虑到了对带宽的充分利用。
从理论上证明了站点的必要性,我们在下篇博文中就要付诸实践了,我们将
在下篇博文中通过实例为大家介绍如何进行站点的创建及管理,敬请关注!
12实战ActiveDirectory站点部署与管理
上篇博文中我们家介绍了站点的设计目的及大致原理,今天我们通过实战为大家介绍如何进行站
点的部署以及管理。实验拓扑如下图所所示,域中有四个域控制器,分别是Flore
nce,Berlin,Firenze和Perth。其中Florence和Berlin在北京,隶属于192.168.11网段;
Firenze和Perth在上海,隶属于192.168.12网段。由于北京和上海之间使用了一条64K的
DDN慢速链路,因此我们有必要使用站点对域内的计算机进行合理规划,以便能够让域内的计
算机在现有的带宽条件下能以最有效率的方式通讯。
目前四台域控制器都在一个站点中,如下图所示,就是默认的Default-First-Site-Name。根
据我们本次实验的具体情况,我们需要把北京和上海的域控制器分为两个站点,为完成这个任务,
我们需要进行下列操作:
一创建站点
二定义站点子网
三定位服务器
四配置站点链接器
一创建站点
默认情况下所有的域控制器都在一个站点内,但目前我们需要两个站点,一个用于管理北京的计
算机,一个用于管理上海的计算机。因此我们需要创建一个新站点,同时把原先的默认站点改名
即可。首先我们先把原来的默认站点Default-First-Site-Name改名为Beijing,我们在域控
制器Florence上打开ActiveDirectory站点和服务,,如下图所示,右键点击原来的默认站
点,选择“重命名”
。
重命名后的结果如下图所示,默认站点已经改名为Beijing。
接下来我们来创建一个新站点Shanghai,如下图所示,右键点击“Sites”,选择新站点。
如下图所示,新站点取名为Shanghai,我们为Shanghai站点选择了一个默认的站点链接器,
关于这个站点链接器的作用我们将在后面的内容中予以介绍。
Shanghai站点创建完毕后,系统提示我们要进行如下图所示的后续操作,我们接下来将按照提
示实现对站点的配置。