域学习笔记十四:迁移操作主控
一、域控制器中的FSMO角色
FSMO是Flexible single master operation的缩写,意思就是灵活单主机操作。营运主机(Operation Masters,又称为Flexible Single Master Operation,即FSMO)是被设置为担任提供特定角色信息的网域控制站,在每一个活动目录网域中,至少会存在三种营运主机的角色。但对于大型的网络,整个域森林中,存在5种重要的FSMO角色,而且这些角色都是唯一的。
1.1、森林级别
说明:一个森林只存在一台DC有这个角色。
1)Schema Master(也叫Schema Owner):架构主控
2)Domain Naming Master:域命名主控
1.2、域级别
说明:一个域里面只存在一台DC有这个角色。
1)PDC Emulator:PDC仿真器
2)RID Master:RID主控
3)Infrastructure Master:基础架构主控
二、FSMO角色的作用
2.1、 Schema Master
作用:修改活动目录的源数据。在活动目录中,存在着各种各样的对像,比如用户、计算机、打印机等,这些对像有一系列的属性。活动目录本身就是一个数据库,对象和属性之间就好像表格一样存在着对应关系,那么这些对像和属性之间的关系是由谁来定义的呢?答案就是Schema Master。如果大家部署过Exchange的话,就会知道Schema是可以被扩展的,但是需要注意的是:扩展Schema一定是在Schema Master进行扩展的,在其它域控制器上或成员服务器上执行扩展程序,实际上是通过网络把数据传送到Schema上,然后再在Schema Master上进行扩展,而要扩展Schema,必须具有Schema Admins组的权限才可以。
建议:在占有Schema Master的域控制器上不需要高性能,一般来说,我们不会经常对Schema进行操作的。假如是经常会对Schema进行扩展,那必须要保证可用性,否则在安装Exchange或LCS之类的软件时会出错。
2.2、Domain Naming Master
作用:管理森林中域的添加或者删除。假如要在现有森林中添加一个域或者删除一个域的话,那么就必须要和Domain Naming Master进行联系,如果Domain Naming Master处于Down机状态的话,你的添加和删除操作肯定会失败的。
建议:对占有Domain Naming Master的域控制器同样不需要高性能,一般来说,我们不会经常在森林里添加或者删除域的。当然高可用性是有必要的,否则就没有办法添加或删除森林里的域了。
2.3、PDC Emulator
从Windows 2000域开始,不再区分PDC还是BDC,但实际上有些操作则必须要由PDC来完成,那么这些操作在Windows 2000域里面怎么办呢?那就由PDC Emulator来完成,主要是以下操作:
1)处理密码验证要求
在默认情况下,Windows 2000域里的所有DC会每5分钟复制一次,但也有一些情况是例外的,比如密码的修改。一般情况下,一旦密码被修改,会先被复制到PDC Emulator,然后由PDC Emulator触发一个即时更新,以保证密码的实时性。当然,实际上由于网络复制也是需要时间的,所以还是会存在一定的时间差,至于这个时间差是多少,则取决于你的网络规模和线路情况。
2)统一域内的时间
微软活动目录是用Kerberos协议来进行身份认证的。在默认情况下,验证方与被验证方之间的时间差不能超过5分钟,否则会被拒绝通过,微软这种设计主要是用来防止回放式攻击。所以在域内的时间必须是统一的,这个统一时间的工作就是由PDC Emulator来完成的。
3)向域内的NT4 BDC提供复制数据源
对于一些新建的网络,不大会存在Windows 2000域里包含NT4的BDC的现象,但是对于一些从NT4升级而来的Windows 2000域却很可能存有这种情况,这种情况下要向NT4 BDC复制,就需要PDC Emulator。
4)统一修改组策略的模板
5)对Windows 2000以前的操作系统(如Win98)的计算机提供支持
对于Windows 2000之前的操作系统,它们会认为自己加入的是NT4域,所以当这些机器加入到Windows 2000域时,它们会尝试联系PDC,而实际上PDC已经不存在了,所以PDC Emulator就会成为它们的联系对象。
建议:从上面的介绍可以看出,PDC Emulator是FSMO五种角色里任务最重的,所以对于占用PDC Emulator的域控制器要保证高性能和高可用性。
2.4、RID Master
1)在Windows 2000的安全子系统中,用户的标识不取决于用户名,虽然我们在一些权限设置时用的是用户名,但实际上取决于安全主体SID。所以当两个用户的SID一样的时候,尽管他们的用户名可能不一样,但在Windows的安全子系统中会把它们认为是同一个用户,这样就会产生安全问题。
2)在域内的用户安全SID=Domain SID+RID,那么如何避免1)描述的安全问题?这就需要用到RID Master。RID Master的作用是:分配可用RID池(地址块)给域内的DC以防止安全主体的SID重复。需要注意的是,每次分配的RID地址块,只可以创建500个用户。
建议:对于占有RID Master的域控制器,其实也没有必要一定要求高性能,因为我们很少会经常性的利用批处理或脚本向活动目录添加大量的用户。
2.5、Infrastructure Master
FSMO的五种角色中最无关紧要的可能就是这个角色了,它的主要作用是:用来更新组的成员列表,因为在活动目录中很有可能有一些用户从一个域(Domain)转移到另外一个域(Domain),那么用户的DN(DomainName)名就会发生变化,这时其它域对于这个用户的引用也要发生变化。这种变化就是由Infrastructure Master来完成的。
建议:其实在活动目录森林里仅仅只有一个域或者森林里所有的域控制器都是GC(全局编录)的情况下,Infrastructure Master根本不起作用,因此一般情况下,对于占有Infrastructure Master的域控制器往往忽略高性能和高可用性。
三、正常迁移操作主控
背景说明:接域学习笔记十三:将域控制器迁移到新买的服务器,DC1从主域降级之后,主控自动会转移到副域DC2上,然后sales01更名为DC1安装成了域控制器。现在要把操作主控迁移到新服务器DC1上。
3.1、RID、PDC、基础结构更改
1)使用域管理员登录DC2,打开服务器管理器,点击"工具",然后选择"Active Directory 用户和计算机"。
2)对着域名linkto.com点击"右键",选择"操作主机"。
3)可以看到,RID、PDC、基础结构的操作主机都是DC2.linkto.com。
4)从上面几张图可以看到,操作主机和当前的域控制器是一样的,没办法做更改,所以此时需要先连接到DC1的域控制器。对着Active Directory 用户和计算机点击"右键",点击"更改域控制器"。
5)选择DC1的域控制器,点击"确定"。
6)此时我们再进来"操作主机",就可以顺利更改RID、PDC、基础结构的操作主机了。
3.2、域命名主控更改
此时,还有域命名主控和架构主控没有更改过来。
1)单击服务器控制器的工具菜单栏,选择"Active Directory 域和信任关系"。
2)对着Active Directory 域和信任关系点击"右键",选择"操作主机"。
3)点击更改。
3.3、架构主控更改
1)架构主控在服务器管理器的工具菜单栏下面没有对应的功能,此时,在运行窗口输入"mmc"调出管理控制台,在"文件"工具栏下点击"添加/删除管理单元",也没有架构主控的相应操作。
2)此时,先要注册一下schmmgmt.dll才能在管理控制台中添加架构主控。使用Win+R调出运行窗口,输入:
regsvr32.exe %systemroot%\system32\schmmgmt.dll
然后点击回车:
3)现在再在运行窗口输入"mmc"调出管理控制台,点击"文件",选择"添加/删除管理单元"。此时,可以看到架构主控项已经有了。
4)点击"Active Directory 架构",然后点击"添加",再点击"确定"。
5)对着Active Directory 架构点击"右键",选择"操作主机"。
6)可以看到,当前的架构主机属于DC2控制器。
7)由于当前的架构主机和域控制器是同一台机器,因此更改不了。回到管理控制台,对着Active Directory 架构点击"右键",选择"更改 Active Directory 域控制器"。
8)选择DC1域控制器,点击"确定"。
9)此时再回到操作主机那里,点击"更改"即可。
四、强制迁移操作主控
背景说明:假如操作主控这台服务器DC1硬盘彻底坏了或者被盗了,那域中就没有操作主控了,此时可以使用命令的方式强制迁移操作主控到DC2上。
1)首先,将DC1关机模拟服务器彻底坏了。在DC2这台副域上,使用Win+R调出运行窗口,输入"cmd"调出命令操作符窗口。
2)依次输入以下命令:
ntdsutil
roles
connections
connect to server DC2.linkto.com
quit
?
3)争夺PDC。在命令符中输入并回车:
Seize PDC
弹出窗口点击"是"。
4)相同的道理,输入以下命令争夺其它主控。
Seize RID master
Seize infrastructure master
Seize naming master
Seize schema master
5)题外的话:从下图可以看到,假如主控彻底坏了联系不上了,使用的是Seize开头的命令,假如主控还联系得上的情况下,使用的是Transfer开头的命令。
参考自: