步骤如下:

1. 遵循https://support.microsoft.com/kb/255504中的transfer FSMO的步骤.

2. 这样做之后还没完. 因为Windows Server 2012有点特殊, 如果你这时shut down掉老的PDC. 你会发现你的新PDC还是会尝试contact 老的PDC, 然后报错.

3. 看一下新的PDC的event viewer, 你会发现如下的警告(Warning):

This server is the owner of the following FSMO role, but does not consider it valid. For the partition which contains the FSMO, this server has not replicated successfully with any of its partners since this server has been restarted. Replication errors are preventing validation of this role.

 
Operations which require contacting a FSMO operation master will fail until this condition is corrected.

 
FSMO Role: DC=OldPDC,DC=local

 
User Action:

 
1. Initial synchronization is the first early replications done by a system as it is starting. A failure to initially synchronize may explain why a FSMO role cannot be validated. This process is explained in KB article 305476.

2. This server has one or more replication partners, and replication is failing for all of these partners. Use the command repadmin /showrepl to display the replication errors.  Correct the error in question. For example there maybe problems with IP connectivity, DNS name resolution, or security authentication that are preventing successful replication.

3. In the rare event that all replication partners being down is an expected occurance, perhaps because of maintenance or a disaster recovery, you can force the role to be validated. This can be done by using NTDSUTIL.EXE to seize the role to the same server. This may be done using the steps provided in KB articles 255504 and 324801 on http://support.microsoft.com.

 
The following operations may be impacted:

Schema: You will no longer be able to modify the schema for this forest.

Domain Naming: You will no longer be able to add or remove domains from this forest.

PDC: You will no longer be able to perform primary domain controller operations, such as Group Policy updates and password resets for non-Active Directory Domain Services accounts.

RID: You will not be able to allocation new security identifiers for new user accounts, computer accounts or security groups.

Infrastructure: Cross-domain name references, such as universal group memberships, will not be updated properly if their target object is moved or renamed.

4. 遵循http://support.microsoft.com/kb/305476中的步骤, 修复此问题.

4. 下一步, 遵循http://technet.microsoft.com/en-us/library/jj574104.aspx中的步骤, 将老的PDC demote掉.

 

Powershell

==================================

Windows 2012上迁移这些FSMO roles非常方便了, 一个PowerShell命令搞定.

Move-ADDirectoryServerOperationMasterRole -Identity “MyAnotherNonPDC” –OperationMasterRole PDCEmulator,RIDMaster,InfrastructureMaster,SchemaMaster,DomainNamingMaste

 

Seize FSMO roles和Transfer FSMO roles的区别

==================================

比方说DC 2 在Seize 了FSMO role, 那么就相当于DC2 偷偷的把DC1的PDC的role的title给拿过来了, 说它是PDC. 但是DC1并不知道它的title被别人拿走了. 那么在DC1重启之后, 就会重新宣布它还是PDC, 于是5个roles就会自动的换回DC1之上.

所以, 一劳永逸的方法有两个:

  • A. 在DC2 Seize了FSMO roles之后, 把DC1 立即shut down. 永不再启用.
  • B. 不要用Seize, 而是使用Transfer. 这样DC1和DC2就会在谁拿这个title上有个沟通. 永久的完成角色的转换.

在这里感谢宝妮屋同学的精彩解释.

 

当新PDC中的Sysvol文件夹中为空时, 可以执行下面的步骤, 来完成Sysvol的rebuild

=================================

SYSVOL Replicated Through DFS-R – Authoritative Restore – Steps To Take

To perform an authoritative restore of the SYSVOL when using DFS-R, use the following steps:

  • Start the Registry Editor
  • Navigate to "HKLM\SYSTEM\CurrentControlSet\Services\DFSR"
  • Create a key called "Restore" (only time only)
  • Create a string value called "SYSVOL" (only time only)
  • For the string value called "SYSVOL" assign the value of authoritative
  • Navigate to "HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore"
  • Create a key called "SystemStateRestore" (only time only)
  • Create a string value called "LastRestoreId" (only time only)
  • For the string value called "LastRestoreId" [1] assign the value of 10000000-0000-0000-0000-000000000000
  • Stop the DFSR Service
  • Start the DFSR Service

From the command-line the same can be achieved through:

  • REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\DFSR\Restore" /v SYSVOL /t REG_SZ /d "authoritative" /f
  • [1] REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\SystemStateRestore" /v LastRestoreId /t REG_SZ /d "10000000-0000-0000-0000-000000000000" /f
  • NET STOP DFSR
  • NET START DFSR

 

其他

=================================

一些其他的相关命令:

net stop dns

net stop netlogon

ipconfig /flushdns

net start dns

net start netlogon

ipconfig /registerdns

可以使用下面的命令来对DC进行检测并输出日志, 供troubleshoot.

dcdiag /v >c:\temp\dcdiag.log

dcdiag /v | out-file c:\temp\dcdiag.log

使用下面的命令来检查FSMO是否迁移成功

netdom query fsmo

 

注意

=================================

1. 新promo的DC一定不要跟老的DC用一样的机器名和IP地址, 否则会出错. 感谢Kun总的分享.

2. Windows Server 2008, 2008 R2, 2012, 2012 R2后, Sysvol的replication都是通过DFS service来做的, 2003和2003 R2都是通过FRS service 来做的.

 

笔者的环境有一台DC, 由于Windows 2012的测试版过期之后, 会一个小时重启一次, 即使有key也无法把DC convert过来. 所以就有了迁移DC的需求. 迁移了FSMO之后, 发现新DC还是无法独立承担DC的角色. 运行DCDiag, 发现如下的错误信息.

Fatal Error:DsGetDcName (servername) call failed, error 1355

网上看了不少帖子, 最后也没找到合适的解决方法. 后来经过同事的帮助, 发现新DC的c:\windows\sysvol文件夹为空, 而且查看该DC的共享也是空的, 所以无法接受DC信息的replication.

后来rebuild了sysvol之后, 问题解决了.

 

参考资料

=================================

Transfer/Seize FSMO Roles to Windows Server 2012 Using Powershell

http://abhijitw.wordpress.com/2013/05/06/fsmo-roles-transferseize-using-powershell/

Move-ADDirectoryServerOperationMasterRole

http://technet.microsoft.com/en-us/library/ee617229.aspx

How to view and transfer FSMO roles in the graphical user interface

http://support.microsoft.com/kb/255690

Using Ntdsutil.exe to transfer or seize FSMO roles to a domain controller

https://support.microsoft.com/kb/255504

Time configuration in a Windows Domain

http://msmvps.com/blogs/mweber/archive/2010/06/27/time-configuration-in-a-windows-domain.aspx

Time synchronization may not succeed when you try to synchronize with a non-Windows NTP server in Windows Server 2003

http://support.microsoft.com/kb/875424/en-us

ADSI Edit (adsiedit.msc)

http://technet.microsoft.com/en-us/library/cc773354(v=ws.10).aspx

You cannot log on to the domain, join a computer to the domain, or run the Active Directory Installation Wizard (Dcpromo.exe) in Windows Server 2003

http://support.microsoft.com/kb/958804/en-us

How to rebuild the SYSVOL tree and its content in a domain

http://support.microsoft.com/kb/315457/en-us

Restoring and Rebuilding SYSVOL

http://technet.microsoft.com/en-us/library/cc816596(v=WS.10).aspx

(2010-08-12) Restoring The SYSVOL (Non-)Authoritatively When Either Using NTFRS Or DFS-R (Part 3)

http://jorgequestforknowledge.wordpress.com/2010/08/12/restoring-the-sysvol-non-authoritatively-when-either-using-ntfrs-or-dfs-r-part-3/

Restoring and Rebuilding SYSVOL

http://technet.microsoft.com/en-us/library/cc816596(v=WS.10).aspx

当Windows Server 2012的主DC出了问题, 如何迁移其上的FSMO角色?的更多相关文章

  1. Windows Server 2012 R2 部署DC及主辅DC

    背景信息: 资源组:hlmdcn DC1:windows Server 2012 R2 Datacenter, A2, hlmdc1, 10.8.0.4DC2:windows Server 2012 ...

  2. Windows Server 2012 R2里十个极好的新功能

    Windows Server 2012 R2具备的众多新特点大大的增强了操作系统的功能性,同时也是在Windows Server 2012原有功能上的拓展.这里整理出Windows Server 20 ...

  3. Windows Server 2012部署第一台域控

    windows server 2012在部署DC方面有了一些改变,不但在操作上有一些改变,而且有了新的DC克隆的功能.本文就先来体验一下如何将一台windows server 2012 RTM服务器提 ...

  4. Windows Server 2012 在桌面上显示”我的电脑”图标

    1.本地方式如果是在Windows Server 2012本地控制台下,直接按Win(键盘上的微软徽标键)+R,输入: rundll32.exe shell32.dll,Control_RunDLL ...

  5. windows server 2012 下IIS8.5关于“ 配置错误 不能在此路径中使用此配置节”的解决办法

    服务器升级为windows server 2012 r2后,发布在新装的IIS8.5上的网站不能访问,页面显示“500 - 内部服务器错误.” 在服务器上调试后,提示的错误信息为: 配置错误 不能在此 ...

  6. 已集成 VirtIO驱动windows server 2012, 2008, 2003的ISO镜像下载

    已集成 VirtIO驱动简体中文windows server 2012, 2008, 2003系统ISO镜像下载地址. 适用于上传自定义ISO并且使用 VirtIO驱动的kvm架构vps,vultr家 ...

  7. Windows Server 2012 在桌面上显示”我的电脑”

    转至:https://jingyan.baidu.com/article/f25ef2544f6883482c1b82e5.html Windows Server 2012 沒有快捷方式显示我的电脑到 ...

  8. Windows Server 2012 虚拟化实战:域

    在Windows Server系统中,一些服务必需要构建在域的环境中,这不仅是为了统一验证和资源共享,同时也是为了网络安全.为构建虚拟化测试,我们需要先搭建域环境.之前先来大概了解一下域. 在使用工作 ...

  9. Windows Server 2012 R2

    Windows Server 2012 R2 历史上的Server有2003 server, 2008 server, 2012 server windows server 2012 r2对计算机的消 ...

随机推荐

  1. loadrunner字符串转换函数

  2. 第七章:Mapping插件

    Mapping插件 Knockout设计成允许你使用任何JavaScript对象作为view model.必须view model的一些属性是observable的,你可以使用KO绑定他们到你的UI元 ...

  3. LeetCode 16. 3Sum Closest(最接近的三数之和)

    LeetCode 16. 3Sum Closest(最接近的三数之和)

  4. 使用 JavaScript 在下拉列表中获取选定的值

    使用 JavaScript 在下拉列表中获取选定的值 演示Demo 使用 JavaScript 在下拉列表中获取选定的值? <!DOCTYPE html> <html> < ...

  5. SpringBoot项目在IntelliJ IDEA中实现热部署(简单方式)

    ------   开启idea自动make/build功能   ----- 1.CTRL + SHIFT + A --> 查找make project automatically --> ...

  6. 简易解析ajax,javascript-XMLHttpRequest

    XMLHttpRequest可以提供不重新加载页面的情况下更新网页 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/ ...

  7. Building Robust and Flexible Event System in Unity3D

    Building Robust and Flexible Event System in Unity3D 1. Prerequisites 1.1 Observer Pattern According ...

  8. Beaglebone Black开发板安装驱动

    Beaglebone Black开发板安装驱动 Beaglebone Black开发板安装驱动,在使用Beaglebone Black开发板子做任何事情之前首先需要安装驱动.下面的内容就了展示在Win ...

  9. 2017/11/20 Leetcode 日记

    2017/11/14 Leetcode 日记 442. Find All Duplicates in an Array Given an array of integers, 1 ≤ a[i] ≤ n ...

  10. 对Java Serializable(序列化)的理解和总结(一)

    导读:最近在做项目的过程中,发现一个问题,就是我们最开始的时候,传递参数包括返回类型,都有map类型.但是由于map每次都要匹配key值,很麻烦.所以在之后就将参数传递和返回类型全都改成了实体bean ...