Active Directory的授权还原
在上篇博文中我们介绍了如何在域中部署额外域控制器,额外域控制器有很多好处,例如可以平衡用户对AD的访问压力,有利于避免唯一的域控制器损坏所导致域的崩溃。从上篇博文中我们得知,域内所有的域控制器都有一个内容相同的Active Directory,而且Active Directory的内容是动态平衡的,也就是说任何一个域控制器修改了Active Directory,其他的域控制器都会把这个Active Directory的变化复制过去。
今天我们要考虑这么一个问题,如果域中有多个域控制器,但他们所拥有的Active Directory内容不一致,那么应该以哪个域控制器的Active Directory内容为准?有的朋友可能会疑惑,怎么会出现这种情况呢?其实假如有个域控制器由于更换硬件导致有几天时间没有在线,而其他的域控制器在这段时间对Active Directory进行了修改,那么当这个域控制器重新上线时就会出现我们所提到的这种情形。
当域控制器们发现彼此的Active Directory的内容不一致,他们就需要分析一下Active Directory的优先级,从而决定以哪个域控制器的Active Directory内容为准。Active Directory的优先级比较主要考虑三方面因素,分别是:
1       版本号
2       时间
3       GUID
版本号指的是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中所有对象的版本号也都完全一致了。
如果A和B两个域控制器都是对administrator口令修改了4次,那么版本号就是相同的。这种情况下两个域控制器就要比较时间因素,看哪个域控制器完成修改的时间靠后,时间靠后者优先。这里我们顺便提及一下,Active Directory中时间是个非常重要的因素,域内计算机的时间误差不能超过5分钟,而且Active Directory还有一个墓碑时间的限制,这些我们以后再详细加以说明。
如果A和B两个域控制器的版本号和时间都完全一致,这时就要比较两个域控制器的GUID了,显然这完全是个随机的结果。一般情况下时间完全相同的非常罕见,因此GUID这个因素只是一个备选方案。
说了这么多的Active Directory优先级原理,我们引入一个具体的例子让大家加深理解。如下图所示,域中有两个域控制器Florence和Firenze。现在域中有一个用户张建国,我们在Firenze上对Active Directory已经进行了备份。现在我们在Florence上不小心把张建国误删除了,显然Firenze会很快把Active Directory中的张建国也删除,以便和Florence的Active Directory保持一致。那么我们应该怎么做才能把张建国给恢复回来呢?
很多朋友会很自然地想到利用Firenze上的Active Directory备份来解决这个问题,既然备份中有张建国,那么把备份还原回来不就OK了吗?这个问题没这么简单,如果域中只有一个域控制器,那么用备份还原是成立的。但现在域中有两个域控制器,我们就要好好考虑一下了。Firenze从备份还原后,Florence和Firenze的Active Directory内容就不一样了,那么Florence和Firenze的Active Directory哪个优先级更高呢?哦,不对,似乎是Florence的版本号更高一些!那我们就可以从理论上得出结论,Firenze从备份还原之后,Active Directory中已经拥有了张建国的用户账号,但Firenze和Florence比较了Active Directory之后,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。
进入目录服务还原模式后,我们从附件中启动备份工具,如下图所示,选择下一步继续。
选择还原文件和设置。
选择从备份还原Active Directory。
点击确定开始Active Directory的还原。
如下图所示,还原结束后,千万别选择重启计算机,我们还没有修改Active Directory的版本号呢,确保选择“否”。
还原结束后在Firenze的命令提示符下运行NTDSUTIL,如下图所示。
运行了NTDSUTIL后,我们可以输入?来获取当前环境下的可执行命令帮助,如下图所示,我们运行Authoritative restore来修改AD对象的版本号。
如下图所示,我们可以简单地运行restore database,这样整个AD内所有对象的版本号都将加到最大,版本号加到最大是什么含义呢?微软规定,AD对象的版本号每天最多可以增加10万。在本例中我们不需要把AD中所有对象的版本号都增加到最大,只要修改张建国的版本号就可以了。因此我们可以使用Restore Object命令只针对张建国的版本号进行修改,那如何在AD中表示张建国呢?按照目录对象的命名规范,张建国隶属于ADTEST.COM域中的人事部组织单位,那我们描述张建国就应该使用cn=张建国,ou=人事部,dc=adtest,dc=com。如下图所示,我们输入修改指令后观察一下运行的效果。
系统询问是否执行授权还原,我们选择“是”。
如下图所示,授权还原成功完成,用quit命令退出NTDSUTIL。
授权还原结束后我们重启Firenze,如下图所示,Firenze的AD中已经重新拥有了用户张建国,修改版本号成功了。

本文出自 “岳雷的微软网络课堂” 博客,请务必保留此出处http://yuelei.blog.51cto.com/202879/119477

转载于:https://blog.51cto.com/hongjun/738648

Active Directory系列之五:Active Directory的主要还原相关推荐

  1. 为什么我们需要域?Active Directory系列之一

    为什么需要域? 对很多刚开始钻研微软技术的朋友来说,域是一个让他们感到很头疼的对象.域的重要性毋庸置疑,微软的重量级服务产品基本上都需要域的支持,很多公司招聘工程师的要求中也都明确要求应聘者熟悉或精通 ...

  2. 为什么我们需要域?MS Active Directory系列之一

    对很多刚开始钻研微软技术的朋友来说,域是一个让他们感到很头疼的对象.域的重要性毋庸置疑,微软的重量级服务产品基本上都需要域的支持,很多公司招聘工程师的要求中也都明确要求应聘者熟悉或精通Active D ...

  3. AD的备份与标准还原:深入浅出Active Directory系列(四)

        大家常常听说过数据库的备份和还原,比如Sql Server ,Oracel等数据库的备份和还原.OK,我们这一节讨论Active Directory数据库的备份和还原.         Act ...

  4. 使用 ADSync 集成 IBM Lotus Domino Directory 和 Microsoft Active Directory

    具有多个目录平台的企业 IT 环境非常常见,而 IBM Lotus Domino Directory 和 Microsoft Active Directory 就是这种情况下的流行选择.本文阐述了一种 ...

  5. AWS云计算技术架构探索系列之五-网络

    一.前言 当我们有了计算和存储资源,但是要真正把应用程序运行起来并提供互联网服务,那还需要使用AWS的网络,本章节就一起了解AWS的网络及其相关的组件基础知识和架构,其中包括: 区域(Region), ...

  6. mldonkey系列之五──Mldonkey选项解释[zt]

    mldonkey系列之五──Mldonkey选项解释 2007-10-27 周六, 21:22 本文译自: http://mldonkey.sourceforge.net/MLdonkeyComman ...

  7. iOS动画系列之五:基础动画之缩放篇旋转篇Swift+OC

    这一篇主要介绍基础动画之缩放和旋转.这些基本操作分享完之后,我想想可以找个稍微复杂一点点的动画做做啦. 这篇继续基础篇,分享一下缩放和旋转.因为整体思路和平移基本上没有变化,加上源代码里面也有OC版本 ...

  8. SQL Server 学习系列之五

    SQL Server 学习系列之五 SQL Server 学习系列之一(薪酬方案+基础) SQL Server 学习系列之二(日期格式问题) SQL Server 学习系列之三(SQL 关键字) SQ ...

  9. 作业——Windows核心编程学习手札系列之五

    作业 --Windows核心编程学习手札系列之五 Windows提供作业内核对象,可以将进程组合在千毫 ,并创建一个"沙框"以便限制进程能够进行的操作.作业可视为进程的容器,win ...

最新文章

  1. SpringBoot (五) :SpringBoot整合mybatis
  2. c枚举类型enum例题_C语言--enum,typedef enum 枚举类型详解
  3. Optimize Slow VBA Code
  4. php 支付宝订单查询_5. PHP接入支付宝单笔订单查询接口
  5. 双主双从(2m-2s)集群介绍和工作流程说明
  6. Spring集成Mybatis配置映射文件方法详解
  7. Apache Cassandra 数据存储模型
  8. 自动轨迹绘制的python代码_python 自动轨迹绘制的实例代码
  9. JSON基础 JS操作JSON总结
  10. 从冷战到深度学习,一文看懂机器翻译发展史
  11. 一道三角函数相关级数求和问题
  12. PHP利用分组查询groupby,Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy...
  13. Hyper-V Windows 8.1 Windows Server 2012 R2 QA
  14. 稳压二极管原理、参数、动态电阻特性
  15. Unity打安卓包 Android 所有错误解决方案大全(几乎囊括所有打包错误 )
  16. 用ps魔棒工具选区域和改变区域颜色
  17. composer查看镜像地址
  18. 黑暗之光第2章:角色创建(魔法师和剑士)
  19. Job Statement
  20. 2014年国人开发的最热门的开源软件TOP 100

热门文章

  1. 由浅入深CIL系列:4.抛砖引玉:使用CIL来分析string类型在.NET运算中的性能和避免装箱...
  2. 对anagrams分组 Group Anagrams
  3. 《JavaScript启示录》——1.7 原始值(或简单值)
  4. javascript匿名函数及闭包深入理解及应用
  5. 我的软件项目过程管理经验
  6. jquery插件图片浏览
  7. 不全屏放映ppt的方法
  8. C++多继承的二义性
  9. 工控项目开发框架介绍
  10. IOS Socket 01-网络协议基础知识