由于Windows 2003包括R2的扩展支持在今年7月14日就会过期。如果在扩展周期结束之前没有和微软签订昂贵服务协议,那么系统将得不到任何补丁和技术支持。

我这里准备了两台测试用的机器做这个实验。一台Windows 2003 R2,另一台是Windows 2012 R2。旧的林功能级别和域功能级别都是Windows 2003.

首先,我们先登录Windows 2003的机器查看一下当前架构版本。运行adsiedit.msc展开到schema分区下,查看当前域的objectVersion属性。这里是31,表示是2003 R2的架构。

这篇KB介绍了查看方式和一些数值对应的版本。
http://support.microsoft.com/kb/558112



在Windows 2012 R2的服务器上安装DNS 和Active Directory Domain Service这两个角色。安装好以后再服务器管理里提升它为域控制器。我之前已经将它加到域里了,实际上加或不加都可以提升成域控制器的。



选择添加域控制器到现有的域中。



接下去有个提示,说是没有发现2008的域控制器,所以不能安装只读域控制器。不过我们这里也不牵涉到RODC。

 

接下去DNS区域创建有个委派警告,有篇文章有详细说明。但是最后我们检查DNS区域的时候还是能看见DNS区域也被正常的复制和加载的。
https://technet.microsoft.com/en-us/library/cc754463(v=ws.10).aspx

这里可以选择从哪台域控制器来复制,也可以用IFM。 IFM适用于大型环境,并且网络慢的情况。

 

 

接下去有一些检查和总结的步骤。

 

这里可以看到提升域控的信息。可以把内容保存成TXT文档。保存下来的可以用在今后使用核心安装的系统上提升域控,或者做个参考。



 

 

最后提升完成,重启服务器。

 

我们再来看一下架构版本,已经升级到了69。提升Windows 2012 R2域控的时候不需要特意去扩展架构。系统会自动完成架构的扩展。

 

检查一下新服务器上的DNS 。

 

手动将FSMO角色转移到新的服务器上。RID, PDC, Infrastructure master在活动目录用户和计算机中查看。

 



Domain Naming master在活动目录域和信任中查看。

 

Schema master需要注册DLL文件,然后手动在MMC中添加管理单元才能查看。

 

注意,默认连接的域控器还是老的那台。
 

需要手动连到新的域控上。然后再转移角色。

 



检查一下GC是否配置,在提升域控的时候已经选择了,我们再检查一下。

 
 

把新域控的DNS改成自己的IP,因为,我么马上就要降级旧的域控了。

最后一次运行dcpromo命令。

 

提醒你,需要确保这台域控降级之后还有其它的全局编录可用。

 

 

设置本地管理员密码。因为它会变成域中的客户端。如果之前选择这是最后一台域控,它会变成工作组中的计算机。

 

 

开始使用铅笔后面的橡皮擦掉东西了,提升的时候是写
 

最后完成降级。重启后整个升级过程。

 

记得要把所有客户端的DNS改成新的域控的地址,否则联系不到域控。



升级Windows 2003域控制器到Windows 2012 R2的更多相关文章

  1. windows 2003 域控制器(AD)的常规命令行操作以及修复

    查询服务器的角色 Netdom query fsmo 强制升级操作主机角色(如果两台DC都无损,可以直接用图形模式传送,这里指的是一台DC出问题,另一台强制升级占用角色的情况) Ntdsutil Ro ...

  2. 解决 VirtualBox 安装windows 8.1 Preview OR Server 2012 R2 Preview 错误

    安装windows 8.1 Preview 或 Server 2012 R2 Preview时提示错误 Your PC needs to restart 解决方法: 在cmd中输入以下代码执行即可: ...

  3. Windows server 2003域控迁移到2012

    1:  windows server 2003 额外域控升级为 windows server 2003主域控 (因为原域控制器某些服务损坏,于是采用将备用域控升级为主域控的方法) https://we ...

  4. windows 2003 域控服务器导出全部hash的方法

    天下文章一大抄,我也是醉了... 一份“错误”的文章一遍又一遍的被转载,盲目转载,根本不细看.只会误导新手. 谈下windows2003域控下如何导出全部的hash信息. 1. 使用备份还原向导 2. ...

  5. Windows定时重新启动(适用于server 2012 r2)

    直接看链接吧:https://jingyan.baidu.com/article/2d5afd69dd8e9d85a2e28eb7.html 开始菜单,找到"计划任务程序"; 2 ...

  6. Windows Server 2012 R2域控制器部署

    1. 概述 该文档描述了在Windows 2012R2 系统上搭建域控的方式. 2. 具体步骤 2.1 首先我们先配置好IP地址.计算名(默认的计算机名比较长,后期其它计算机加入域控的时候需要输入比较 ...

  7. Windows 2008 R2 域控制器迁移至windows 2016记录

    文章参考 https://social.technet.microsoft.com/Forums/zh-CN/21a5f5e9-feee-4454-acad-fd22989d7bed/22495296 ...

  8. install Active Directory域控制器

    设置Active Directory域控制器 正如我们在网络与系统配置专题文章中所提到的那样,我们已将两部服务器设置为对应于内部域“intdomain.com”的Active Directory域控制 ...

  9. 安装 Windows Server 2012 Active Directory 只读域控制器 (RODC)(级别 200)

    安装 Windows Server 2012 Active Directory 只读域控制器 (RODC)(级别 200) 适用对象:Windows Server 2012 本主题介绍如何创建分步的 ...

随机推荐

  1. C#中List实体类转换为object 并把参数返回到前端

    用ConvertAll方法转换: List<Object> m= list.ConvertAll(s=> (object)s); 返回的结果:

  2. 实时数据引擎系列(五): 关于 SQL Server 与 SQL Server CDC

      摘要:在企业客户里, SQL Server 在传统的制造业依然散发着持久的生命力,SQL Server 的 CDC 复杂度相比 Oracle 较低, 因此标准的官方派做法就是直接使用这个 CDC ...

  3. Python中print()函数的用法详情

    描述 print() 方法用于打印输出,最python中常见的一个函数. 在交互环境中输入help(print)指令,可以显示print()函数的使用方法. >>> help(pri ...

  4. 聊聊 C++ 大一统的初始化运算符 {}

    一:背景 最近发现 C++ 中的类型初始化操作,没有 {} 运算符搞不定的,蛮有意思,今天我们就来逐一列一下各自的用法以及汇编展现,本来想分为 值类型 和 引用类型 两大块,但发现在 C++ 中没这种 ...

  5. 2022.7.19 $\mathcal{S\,\,T\,L}$

    \(STL\) 容器的共有特征:.begin() .end()//表示最后一个元素的后面那个位置 .size()//无符号整型 .swap(b) ::iterator//迭代器 关于迭代器 迭代器可以 ...

  6. SQL语句的整合

    基础语法 https://blog.csdn.net/m0_37989980/article/details/103413942 CRUD 提供给数据库管理员的基本操作,CRUD(Create, Re ...

  7. WPF 实现用户头像选择器

    制作一个用户头像选择器仿 WeGame 制作一个用户头像选择Canvas为父控件所实现,展示图片使用Image,Path当作上方的蒙版; Canvas:主要用途方便移动Image,设置ClipToBo ...

  8. DQL分组查询和DQL分页查询

    分组查询: 1.语法:group by 分组字段: 2.注意: 分组之后查询的字符按:分组字段.聚合函数 where 和having 的区别 where再分组前进行限定,如果不满足条件则不参与分组.h ...

  9. 转一篇MYSQL文章《数据库表设计,没有最好只有最适合》

    http://mp.weixin.qq.com/s/a8klpzM5iam0_JYSw7-U4g 我们在设计数据库的时候,是否会突破常规,找到最适合自己需求的设计方案,下面来举个例子: 常用的邻接表设 ...

  10. php数组和对象相互转换

    function arrayToObject($e){ if( gettype($e)!='array' ) return; foreach($e as $k=>$v){ if( gettype ...