引言: 在管理AD DS域服务时,常遇到无法登录域环境、软件安装失败等情况。利用系统内置的“Ntdsutil”命令,可以有效解决上述问题。作为活动目录数据库管理的命令行工具,“Ntdsutil”命令主要用于维护Active Directory数据库、管理和控制操作主机、清理Active Directory数据库中的垃圾数据等功能。
当域控制器出现故障但依然可用的情况下,可以先将出现故障的服务器设置为额外域控制器,而将额外域控制器升级为主域控制器。在域环境中,仅仅有一台域控制器是不够的,为此,可以创建一台运行AD DS域服务,与域控制器并行的额外域控制器。在AD DS域服务器出现问题时,可以接管其Active Directory的管理工作。例如,可以在一台Windows Server 2008独立服务器上打开“系统属性”窗口,在“计算机”面板中点击“更改”按钮,在弹出窗口中选择“域”项,输入域名,点击“确定”按钮,重启系统,以域管理员身份登录。
点 击“Win+R” 键, 执行“Dcpromo.exe”程 序,在Directory域服务安装向导界面中连续点击“下一步”按钮,在“选择某一部署配置”窗口中选择“向现有的域添加域控制器”项,在“下一步”窗口中的“键入位于计划安装此域控制器的林中任何域的名称”栏中输入域名,点击“下一步”按钮,在网络凭据窗口中输入该域的管理员和账户和密码。连续点击“下一步”按钮,依次选择目标域和站点项目,并根据需要选择DNS服务器和全局编录项目。
注意,如果部署的是只读域控制器,则不要选择全局编录项目。对于部署额外控制器来说,最好选择DNS服务器项。
根据实际的网络规划,来确定是否将额外控制器升级为全局编录服务器。当部署完毕后,使用Active Directory站点和服务程序,将额外域控制器升级为全局编录控制器。点击“下一步”按钮,将数据库文件夹、日志文件、SYSVOL文件夹分别存储到不同的磁盘中。在下一步窗口中输入用于目录还原模式的Administrator密码。当然,该密码必须符合密码强制策略。之后连续点击“下一步”按钮,执行额外域控制器的安装操作。完毕后重启系统,完成额外控制器的部署。
当发现上述故障时,以域管理员身份登录额外域控制器,打开Active Directory站点和服务窗口,在左侧点击“Sites→Default-First-Site-Name→Servers→额外域控制器名称”项,在右侧的“NTDS Settings”项右键菜单上点击“属性”项,在“常规”面板(如图1)的“查询策略”列表中选择“Default Query Policy”项,勾选“全局编录”项。点击“确定”按钮保存配置信息。因为主域控制器处于可用状态,因此打开Active Directory用户和计算机窗口,在左侧的“Active Directory用户和计算机”项的右键菜单上点击“更改域控制器”项,在弹出窗口中选择“此域控制器或AD LDS实例”项,在列表中选择所需的额外控制器,点击“确定”按钮,保存设置信息。
在CMD窗口中执行“ntdsutil”命令,依次执行“roles”,“connections”,“connect to server xxx.xxx.com” 命 令(如 图 2)。连接到额外域控制器上,假 设“xxx.xxx.com”为 其名称。执行“quit”命令,返回上级目录。在“fsmo maintenance”提示符下执行“Transfer schema master”命令,在角色传送确认对话框中点击“是”按钮,将架构主机角色转移到额外域控制器中。执行分别执行“transfer infrastructure master”,“transfer naming master”,“transfer PDC”,“transfter RIP master”等命令,执行传送架构主机角色、域命名主机角色、PDC主机角色、RID主机角色等操作。在CMD窗口中执行“netdom query fsmo”命令,可以查看操作主机角色部署在哪台域控制器中。经过以上操作,原主域控制器自动降级为额外域控制器。
图1 查看NTDS设置承诺书
图2 运行ntdsutil命令
以管理员身份登录该域控制器,在CMD窗口中执行“dcpromo.exe”程序,在Active Directory域服务安装向导界面中点击“下一步”按钮,在弹出提示窗口中点击“是”按钮,在删除域窗口中不选择“删除该域,因为此服务器是该域中最后一个域控制器”项,在下一步窗口中输入该服务器上新的Administrator账户密码,密码必须包含大小写字母和数字,长度大于7位。之后点击“完成”按,重新启动系统,该机将降级为成员服务器。
当登录后按照上述方法,在系统属性窗口中选择“工作组”项,输入工作组名称(例如“WORKGROUP”),点击确定按钮,输入对应的账号名和密码,其必须拥有从域中删除此计算机的权限。点击“确定”按钮,然后重启系统,就可以脱离域环境。之后在该机上执行重装Windows Server 2008,并按照上述方法,提升为额外域控制器,根据需要升级为主域控制器,并利用Windows Server Backup组件来恢复之前备份的Active Directory数据库,这样,就可以将AD域控制器恢复到正常状态了。
如果域控制器已经彻底损坏无法恢复,可以将额外域控制器直接升级为域控制器。以域管理员身份登录到额外域控制器上,在CMD窗口执行以上命令,连接到目标域,在“fsmo maintenance:”提示符下执行“seize schema master”命令,在弹出的角色占用确认窗口中点击“是”按钮,执行占用架构主机角色操作。完毕后依次执行“seize infrastructure master”,“seize naming master”,“seize PDC”,“seize RIP master”命令,分别执行占用架构主机角色、域命名主机角色、PDC主机角色、RID主机角色等操作。之后按照上述方法,将额外控制器提升为全局编录服务器,恢复管理活动目录数据库的功能。
在维护和管理Active Directory数据库时,有时会遇到误操作、系统故障或者硬件受损的情况,可能在Active Directory数据库中产生垃圾数据,当在多台域控制器之间复制数据时,将会产生一些错误的信息。因此,及时将Active Directory数据库中垃圾数据清理掉,对于维护其运作是很重要的。
例如,当某台域控制器出现损坏时,就需要从Active Directory数据库中清除由此产生的错误信息。在CMD窗口中执行“Ntdsutil”命令,在“ntdsutil:”提 示符下依次执行“metadata cleanup”、“ select operation target”、“connections” 命 令,在“server connections:”提示符下执行“connect to server xx.xxx.com”命令。连接到名为“xx.xxx.com”的域控制器中。
为了顺利实现连接操作,不要使用IP连接,因为这可能出现连接参数不正常的问题。在“server connections:”提示符下执 行“metadata cleanup:quit”命令,执行完毕后,在“metadata cleanup:”提示符下执行“list site”命令,显示所有可用的站点项目。根据需要选择发生故障的域控制器所在站点的索引号。
例 如, 执 行“select site 0”命令,表示选择索引号为0的站点。执行“list domains”命令,显示所有可用的域。选择发生故障的域控制器所在域。例如执行“select domain 0”命 令,选择索引号为0的域。执行“list servers for domain in site”命令,列出该域中所有的域控制器。
从中选择需要清理垃圾数据的域控制器对应的索引号,例如执行“select server 1”命令,选择索引号为1的目标域控制器。执行“quit”命令,返回上级目录。在“metadata cleanup:”提示符下执行“remove select server”命令,在服务器删除确认对话框中点击“是”按钮,对选定的发生故障的域控制器执行垃圾数据清理操作。如果清除的是Server对象,需要在Active Directory站点和服务窗口中打开目标站点,删除对应的Server对象。在Active Directory用户和计算机窗口中打开名为“Doamin Control”的组织单元,在其中删除对应的域控制器对象。如果清理的是Domain对象,需要打开Active Directory域和信任关系程序,删除对应的已经失效的信任关系。
当系统出现故障时,使用实现准备的备份文件,可以快速恢复系统。不过,这也会造成系统使用的安全标识符SID与之前的系统相同,在Active Directiry数据库中会出现重复的SID,造成相关主机登录失败的情况。
SID(Securoty Identifiers,安全标识符)是系统标识用户,组和计算机账户的惟一号码。 在Windows内 部,每个账号具有一个惟一的SID。打开注册表编辑器,选中“HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList”分支,在其下可以看到所有账户的SID号。
清除活动目录数据库中重复SID的方法是,打开CMD窗口,执行“ntdsutil”命令,之后执行“security account management”命令,在“安全策略账户维护:”提示符下执行“connect to server xx.xxx.com”命令,连接到目标域中。依次执行“check duplicate sid”,“clean duplicate sid”命令,可以将当前活动目录数据库中重复的SID清理掉完。完毕后连续执行“quit”命令,退出“ntsdutil”操作界面。