关闭

windows server 2012 AD 活动目录部署系列(七)Active Directory 的授权还原

标签: AD授权还原GUIDAD版本号AD优先级NTDSUTIL
5413人阅读 评论(0) 收藏 举报
分类:

上篇博文中我们介绍了部署额外域控制器,也了解到域内所有的域控制器都有一个内容相同的Active Directory,而且 Active Directory 的内容是动态平衡的,也就是说任何一个域控制器修改了 Active Directory,其他的域控制器都会把这个 Active Directory 的变化复制过去。

今天我们要考虑这么一个问题,如果域中有多个域控制器,但他们所拥有的 Active Directory 内容不一致,那么应该以哪个域控制器的 Active Directory 内容为准?可能我们会疑惑,怎么会出现这种情况呢?其实假如有个域控制器由于更换硬件导致有几天时间没有在线,而其他的域控制器在这段时间对 Active Directory 进行了修改,那么当这个域控制器重新上线时就会出现我们所提到的这种情形。

当域控制器们发现彼此的 Active Directory 的内容不一致,他们就需要分析一下 Active Directory 的优先级,从而决定以哪个域控制器的 Active Directory 内容为准。Active Directory 的优先级比较主要考虑三方面因素,分别是:

1、版本号版本号指的是 Active Directory 对象的修改次数,版本号高者优先。例如域中有两个域控制器 A 和 B,A 域控制器上的用户 administrator 口令被修改了 4 次,最后被改为 12345;B 域控制器上的用户 administrator 口令被修改了 5次,最后被改为 123456。那么 A 和 B 发现他们的 Active Directory 中 administrator 口令不一致,这时 A 和 B 会分析版本号,发现版本号分别是 4 和 5,这时 A就会把 B 的 Active Directory内容复制到本机的 Active Direcotry中。 经过这么一轮复制后,A 和 B 的 Active Directory 内容就达到了新的平衡,他 们 Active Directory 中所有对象的版本号也都完全一致了。

2、时间:如果 A 和 B 两个域控制器都是对 administrator 口令修改了 4 次,那么版本号 就是相同的。这种情况下两个域控制器就要比较时间因素,看哪个域控制器完成修改的时间靠后,时间靠后者优先。这里我们顺便提及一下,Active Directory 中时间是个非常重要的因素,域内计算机的时间误差不能超过 5 分钟,而且 Active Directory 还有一个墓碑时间的限制,这些我们以后再详细加以说明。

3、GUID:如果 A 和 B 两个域控制器的版本号和时间都完全一致,这时就要比较两个域控制器的 GUID 了,显然这完全是个随机的结果。一般情况下时间完全相同的非常罕见,因此 GUID 这个因素只是一个备选方案。

下面我们引入一个具体的例子让大家加深理解。

1、域中有两个域控制器 Florence 和 Firenze。

2、域中有一个用户张建国,我们在 Firenze 上对 Active Directory 已经进行了备份。 

3、我们在 Florence 上不小心把张建国误删除了,显然 Firenze 会很快把 Active Directory 中的张建国也删除,以便和 Florence 的 Active Directory 保持一致。

那么我们应该怎么做才能把张建国给恢复回来呢?

可能我们会想到利用 Firenze 上的 Active Directory 备份来解决这个问题,既然备份中有张建国,那么把备份还原回来不就 OK 了吗?这个问题没这么简单,如果域中只有一个域控制器,那么用备份还原是成立的。但现在域中有两个域控制器,我们就要好好考虑一下了。

发现问题:Firenze 从备份还原后,Active Directory 中已经拥有了张建国的用户账号,但 Firenze 会和 Florence 比较 Active Directory 内容,并且Florence的版本号要高,所以Firenze 认为 Florence 的 Active Directory 比自己的优先级高,因此 Firenze 会把 Florence 的 Active Directory 复制过来, 这样一来,刚被还原的张建国肯定会被重新删除掉!

解决思路:在 Firenze 从备份还原 Active Directory 之后,我们可以利用一个工具NTDSUTIL.EXE来修改Active Directory对象的版本号,让Firenze的版本号大于Florence的版本号,这样我们就可以利用达到目的了。这种还原方式我们称为授权还原,下面我们通过一个实例为大家演示一下具体过程。

现在的场景是 Firenze 已经对 Active Directory 进行了备份,备份中包含了域用户张建国。在备份之后我们误删除了张建国,现在我们在 Firenze 上开始利用备份进行主要还原。首先在 Firenze 上重启计算机,BIOS 自检后按下 F8, 如下图所示,选择进入目录服务还原模式。目录服务还原模式可以把 Active Directory 挂起,适合我们从备份还原 Active Directory。









在以下界面中,勾选“授权还原”,




点击“恢复”,过程需要10-20分钟,请稍等...

如下图所示,还原结束后,千万别选择重启计算机,我们还没有修改Active Directory的版本号呢,保持以下界面,打开命令提示符窗口


 

在命令提示符中,运行了 NTDSUTIL,再运行 Authoritative restore 来修改 AD 对象的版本号。

我们可以简单地运行 restore database,这样整个 AD 内所有对 象的版本号都将加到最大,版本号加到最大是什么含义呢?微软规定,AD 对象 的版本号每天最多可以增加10万。在本例中我们不需要把AD中所有对象的版本号都增加到最大,只要修改张建国的版本号就可以了。因此我们可以使用 Restore Object 命令只针对张建国的版本号进行修改,那如何在AD中表示张建国呢?按照目录对象的命名规范,张建国隶属于 ADTEST.COM 域中的人事部组织单位,那我们描述张建国就应该使用“cn=张建国,ou=人事部,dc=adtest,dc=com”。如下图所示,我们输入修改指令后观察一下运行的效果。


运行完命令后,系统询问是否执行授权还原,我们选择“是”。

如下图所示,授权还原成功完成,用 quit 命令退出 NTDSUTIL。

重启计算机,正常启动,以域管理员登录,提示如下,


打开Active Directory用户和计算机,如下图所示,Firenze的 AD 中已经重新拥有了用户张建国,修改版本号成功了。


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

很多朋友会很自然地想到利用 Firenze 上的 Active Directory 备份来解决这个 问题,既然备份中有张建国,那么把备份还原回来不就 OK 了吗?这个问题没这 么简单,如果域中只有一个域控制器,那么用备份还原是成立的。但现在域中有 两个域控制器,我们就要好好考虑一下了。Firenze 从备份还原后,Florence

 

和 Firenze 的 Active Directory 内容就不一样了,那么 Florence 和 Firenze 的 Active Directory 哪个优先级更高呢?哦,不对,似乎是 Florence 的版本 号更高一些!那我们就可以从理论上得出结论,Firenze 从备份还原之后,Acti ve Directory 中已经拥有了张建国的用户账号,但 Firenze 和 Florence 比较 了 Active Directory 之后,Firenze 认为 Florence 的 Active Directory 比自 己的优先级高,因此 Firenze 会把 Florence 的 Active Directory 复制过来, 这样一来,刚被还原的张建国肯定会被重新删除掉!

难道我们对此就无能为力了吗?不是的,在 Firenze 从备份还原 Active Direc tory 之后,我们可以利用一个工具NTDSUTIL.EXE 来修改 Active Direct ory 对象的版本号,让Firenze的版本号大于Florence的版本号,这样我们就可以利用游戏规则顺利地达到目的了。这种还原方式我们称为授权还原,下面我们通过一个实例为大家演示一下具体过程。

现在的场景是 Firenze 已经对 Active Directory 进行了备份,备份中包含了域 用户张建国。在备份之后我们误删除了张建国,现在我们在 Firenze 上开始利 用备份进行主要还原。首先在 Firenze 上重启计算机,BIOS 自检后按下 F8, 如下图所示,选择进入目录服务还原模式。目录服务还原模式可以把 Active Di rectory 挂起,适合我们从备份还原 Active Directory。


转载请注明出处:http://blog.csdn.net/xiezuoyong/article/details/9465015

0
0

猜你在找
深度学习基础与TensorFlow实践
【在线峰会】前端开发重点难点技术剖析与创新实践
【在线峰会】一天掌握物联网全栈开发之道
【在线峰会】如何高质高效的进行Android技术开发
机器学习40天精英计划
Python数据挖掘与分析速成班
微信小程序开发实战
JFinal极速开发企业实战
备战2017软考 系统集成项目管理工程师 学习套餐
Python大型网络爬虫项目开发实战(全套)
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:421656次
    • 积分:4804
    • 等级:
    • 排名:第5639名
    • 原创:80篇
    • 转载:0篇
    • 译文:0篇
    • 评论:38条
    博客专栏
    最新评论