当您运行 Dcpromo.exe 程序并安装 Active Directory 时,将向目录林中的第一个 Microsoft Windows 2000 Active Directory 域控制器授予五个 FSMO 角色。其中有两个 FSMO 角色是目录林范围的,另外三个是域范围的。如果创建了子域,两个目录林范围的角色将不会更改。一个具有两个域的目录林将有八个 FSMO;其中两个是目录林范围的角色,每个域各有三个特定于域的 FSMO 角色。

这五个 FSMO 角色是:
架构主机 (Schema master) - 目录林范围的角色,每目录林一个。
域命名主机 (Domain naming master) - 目录林范围的角色,每个目录林一个。
RID 主机 (RID master) - 特定于域的角色,每个域一个。
PDC - PDC 仿真器是特定于域的,每个域一个。
结构主机 (Infrastructure master) - 特定于域的角色,每个域一个。
若要将 FSMO 角色从一台计算机移动到另一台计算机,您可以使用两种不同的方法。第一种方法是转移,这也是我们推荐的方法。如果两台计算机都处于运行状态,您可以使用第一种方法。如果 FSMO 角色所有者都处于脱机状态,请使用第二种方法。第二种方法需要使用 Ntdsutil.exe 工具获取这些角色。

备注如果您在从域或目录林中删除 FSMO 角色所有者,则只需获取 FSMO 角色并将其转移到余下的 Active Directory 域控制器即可。

若要使用 Ntdsutil 获取或转移 FSMO 角色,请按照下列步骤操作:
在任何一个域控制器上,单击开始,单击运行,在框中键入 ntdsutil,然后单击确定。

注意Microsoft 建议您使用担当 FSMO 角色的域控制器。
键入 roles,然后按 ENTER 键。

如想在 Ntdsutil 工具中的任何提示符下查看可用命令的列表,请键入 ?,然后按 ENTER 键。
键入 connections,然后按 ENTER 键。
键入 connect to server 服务器名,其中服务器名是您要使用的服务器的名称,然后按 ENTER 键。
在 server connections: 命令提示下,键入 q,然后再次按 ENTER 键。
键入 seize 角色,其中角色是您要获取的角色。如想查看您可以获取的角色的列表,请在 Fsmo maintenance: 提示下键入 ?,然后按 ENTER 键,或者参考本文开头的角色列表。例如,要获取 RID 主机角色,您需要键入 seize rid master。PDC 仿真器角色是一个例外,它的语法应是“seize pdc”而不是“seize pdc emulator”。

注意这五个角色都需要在目录林中。如果第一个域控制器在目录林之外,则需要获取所有角色。应适当地确定哪些角色将在哪些保留的域控制器上,避免让所有的五个角色仅在一台服务器上。

Microsoft 建议只有在其他的域控制器不返回到该域时才获取所有角色,否则应使用适当的角色修复损坏的域控制器。

如果持有 FSMO 角色的原域控制器仍处于联机状态,请转移这些角色。键入 transfer 角色。
当您获取或转移这些角色后,键入 q,然后按 ENTER 键,直到退出 Ntdsutil 工具。
注意不要将“结构主机”角色与全局编录放在同一个域控制器上。

如要检查域控制器是否同时还是全局编录服务器,请执行以下操作:
单击开始,指向程序,指向管理工具,然后单击 Active Directory 站点和服务。
双击左窗格中的站点,然后浏览到适当的站点,或者,在没有其他站点可用时单击默认的第一个站点的名称。
打开服务器文件夹,然后单击该域控制器。
在域控制器的文件夹中,双击 NTDS 设置。
在操作菜单上,单击属性。
在“常规”选项卡上,找到全局编录复选框以查看其是否选中。

备注:不要将“结构主机”(IM) 角色和全局编录服务器放在同一个域控制器上。如果“结构主机”运行在全局编录服务器上,它将停止更新对象信息,因为它不包含对它不拥有的对象的引用。这是因为,全局编录服务器持有的是目录林中每一对象的不完整副本。

 

ntdsutil.exe使用详解

1  ntdsutil来清除无效的DC信息!

假如你的备份域为abc.mstc.com 主域为ctu.mstc.com,现在备份域坏了。那么你在装有super tools(2k3的安装光盘中有)的主控域上执行如下命令:

C:\>ntdsutil

ntdsutil: metadata cleanup - 清理不使用的服务器的对象
metadata cleanup: select operation target - 选择的站点,服务器,域,角色和命名上下文
select operation target: connections - 连接到一个特定域控制器
server connections: connect to server ctu.mstc.com  --绑定到 ctu.用本登录的用户的凭证连接 ctu。
server connections: quit - 返回上一层目录
select operation target: list site - 在企业中列出站点(找到1个站点,标识为0)

找到 1 站点

0 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=mstc,DC=com

select operation target: select site 0 - 将标识为 0 的站点定为所选站点

站点 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=mstc,DC=com

没有当前域

没有当前服务器

当前的命名上下文

select operation target: list domains - 列出所有包含交叉引用的域

找到 1 域

0 - DC= mstc,DC=com

select operation target: select domain 0 - 将标识为 0 的域定为所选域

站点 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC= mstc,DC=com

域 - DC= mstc,DC=com

没有当前服务器

当前的命名上下文

select operation target: list servers for domain in site - 列出所选域和站点中的服务器(找到两个:0-abc.mstc.com;1-ctu. mstc.com)

找到 2 服务器

0 - CN=ADDEMO,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC= mstc,DC=com
1 - CN=ADDDC,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC= mstc,DC=com

select operation target: select server 0 - 将标识为 0 的服务器(abc)定为所选服务器——也就是要删除的DC

站点 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=acme,DC=com
域 - DC= mstc,DC=com
服务器 - CN=ADDEMO,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC= mstc,DC=com
DSA 对象- CN=NTDS Settings,CN=ADDEMO,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configur
DNS 主机名称 - abc.mstc.com
计算机对象 - CN=ABC,OU=Domain Controllers,DC=mstc,DC=com
当前的命名上下文

select operation target: quit - 返回上一层目录

metadata cleanup: remove select server - 从所选服务器上删除 DS 对象

在弹出的对话提示框上选择“是”,

“CN=abc,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC= mstc,DC=com”删除了,从服务器“ctu”

现在,abc.mstc.com这个Dc对象就在你的AD里消失了.

2.用ntdsutil来转移fsmo五种角色。

当您运行Dcpromo.exe 程序并安装 AD 时,将向目录林中的第一个域控制器授予五个 FSMO 角色。其中有两个 FSMO 角色是目录林范围的,另外三个是域范围的。如果创建了子域,两个目录林范围的角色将不会更改。一个具有两个域的目录林将有八个 FSMO;其中两个是目录林范围的角色,每个域各有三个特定于域的 FSMO 角色。这五个角色是schema master-架构主机,Domain naming master-域命名主机,Rid master-rid主机,pdc master-pdc防真器,Infrastructure Master-结构主机。想要把这几种角色移动到另一台计算机上有2种方法,一种是转移,但必须2台计算机处于正常运行状态。如果有其中某台处于离线状态只能用第二种方法,使用ntdsutil工具来强制获取这些角色。现在如果你的主控坏了这些角色也都在主控上,请在装有support tools工具新的域控或备份域控上执行如下命令:首先在CMD下运行
netdom query /d:域名 fsmo
查看一下当前哪些角色在哪台服务器上,
然后在CMD下运行 
"ntdsutil"如果不知道命令怎么写,可以输入?得到帮助提示,
"roles" 
"connections" 
"connect to server 服务器名" 绑定一台当前在线的DC
当连接成功后输入 q 退出
回到上一层(roles)准备做角色迁移
"Seize schema master"
"Seize domain naming master"
"Seize RID master"
"Seize PDC"
"Seize infrastructure master"

以上五个命令,分别用作迁移上面所提到的5个角色到我们之前绑定的服务器上。
完成后再次回到CMD下执行"netdom query /d:域名 fsmo",检查角色是否已被迁移

在“常规”选项卡上,找到全局编录复选框以查看其是否选中。如果正常就说明角色转换已成功。

3.微软提供了NTDSUtil这个工具可以对AD数据文件进行下线碎片整理操作. 由于微软已经提供了这整个操作过程的说明,所以在这里我只稍微重复一下,再加上一些额外的说明以避免大家犯一些不必要的灾难性错误, 因为这是一个很关键的操作,一旦出错将是灾难性的.

1). 用必要的备份软件备份你即将要操作的每一架DC,如果没有专业的备份软件用NTBackup也可以.
2). 重启DC按F8键进入目录服务恢复模式以进行对AD的操作.
3). 如果硬盘还有足够的空间那么请再次备份当前的ntds.dit文件,把它拷贝到一个临时文件夹内作为备份直到所有的整理工作成功完成.记住,不要重新命名文件,否则整个压缩过程不可能完成.
4). 在命令行下键入以下的命令:
a) Ntdsutil
b) Files
c) Info (记下当前ntds.dit的路径.)
d) 键入 compact to "c:\compact" 以把经过压缩处理的ntds.dit文件放置到这个文件夹中保存, 如果这个文件不存在,Ntdsutil 会自动建立一个(这个文件夹可以是任意名字).
5). 如果要退出Ntdsutil的界面,请连续两次键入下面的命令:
a) quit
b) quit
6). 用在c:\compact文件夹下已经经过压缩后的ntds.dit覆盖当前的ntds.dit.
7). 删除在AD数据库文件文件夹下的所有.log文件.
8). 重新正常启动DC.
9). 再次备份整理后的DC,如果一切正常,你就可以把刚才复制备份的ntds.dit删除了.
 
4. 查找和清理(或删除)重复的安全标识符 (SID)

如何检查是否有重复的 SID

1). 在 Ntdsutil 命令提示符下,键入 security account management,然后按 ENTER 键。
2). 在 Security Account Maintenance 命令提示符下,键入 connect to server 服务器的 DNS 名称,然后按 ENTER 键。连接到存储着您的 SAM 数据库的服务器。
3). 在 Security Account Maintenance 命令提示符下,键入 check duplicate sid,然后按 ENTER 键。将显示重复的 SID。

如何清理重复的 SID

1). 在 Ntdsutil 命令提示符下,键入 security account management,然后按 ENTER 键。
2). 在 Security Account Maintenance 命令提示符下,键入 connect to server 服务器的 DNS 名称,然后按 ENTER 键。连接到存储着您的 SAM 数据库的服务器。
3). 在 Security Account Maintenance 命令提示符下,键入 cleanup duplicate sid,然后按 ENTER 键。Ntdsutil 将确认删除重复的 SID。
4). 在 Security Account Maintenance 命令提示符下,键入 q,然后按 ENTER 键。
5). 完成 Ntdsutil 下的操作后,键入 q,然后按 ENTER 键。

5. 使用 Ntdsutil 实用工具将 IP 地址添加到 IP 拒绝列表.

如何向拒绝列表添加 IP 地址

1). 在 Ntdsutil 命令提示符下,键入 IPDeny List,然后按 ENTER 键。
2). 在 IP Deny List 命令提示符下,键入 connections,然后按 ENTER 键。
3). 在 server connections 命令提示符下,键入 connect to server 服务器的 dns 名称,然后按 ENTER 键。
备注:请连接到您正在使用的服务器。
4). 在 Server connections 命令提示符下,键入 q,然后按 ENTER 键返回到先前的菜单。
5). 在 IP Deny List 命令提示符下,键入 add IP 地址掩码,然后按 ENTER 键。
如果您正在单节点环境中工作,可将“node”用作掩码变量。
6). 在 IP Deny List 命令提示符下,键入 commit,然后按 ENTER 键提交所作的更改。

如何验证添加的项

1). 在 IP Deny List 命令提示符下,键入 Show,然后按 ENTER 键。
将显示所有被拒绝的 IP 地址的列表。
2). 在 IP Deny List 命令提示符下,键入 q,然后按 ENTER 键。
3). 在 Ntdsutil 命令提示符下,键入 q,然后按 ENTER 键退出 Ntdsutil。

6. 重设DSRM密码

1). “开始” - “运行” - “CMD”
2). ntdsutil
3). 在“ntdsutil:”提示符下输入“set DSRM Password”
4). 在“重置DSRM管理员密码:”提示符下输入“Reset Password on server <servername>”,其中<servername>是想修改DSRM管理员密码的服务器名。
5). 在“请键入DS还原模式管理员账户的密码:”提示符下输入新的密码。
6). 确认新的密码。
7). 设置密码成功,工具回到“重置DSRM管理员密码:”提示符。
8). 输入“quit”返回到ntdsutil命令提示符。
9). 如果不需要执行其他ntdsutil操作,再次输入“quit”退出ntdsutil工具。