公司会竭尽全力确保合适的活动目录备份程序、各种冗余解决方案以及其它有助于防止和减轻灾难的方案。在大多数情况下,这些方案主要是反应性的解决方案。
很多工程师对备份已经过于得意以至于他们忘记了一个非常重要的要素,那就是要把活动目录的健康放在首位。当活动目录损坏时,可以通过快照来恢复或者使用Ntdsutil.exe来修复。
推荐专题:听专家讲述Windows活动目录
提前预防并不意味着灾难计划就不受重视。灾难预防的关键因素包括维持良好的备份,如果有的话,确保在存储区域网络(SAN)上快照已完成。然而,在活动目录功能里有一些技巧和窍门,它们有助于保持整个环境更加稳定和健康。
防范活动目录的“意外”对象删除
几乎每个工程师都在活动目录里犯过错误。有时它是一个简单的用户名拼写错误,其它时候可能会更加严重。已经存在这样一些实例:管理员登录到活动目录执行一些管理操作,然后意外地删除了整个组织单元(OU)。如果这个组织单元中包含了3000个用户呢?那么现在该怎么办呢?
在许多解决方案中,管理员将不得不恢复活动目录数据库或者试图找到最近的活动目录快照。然而,在Windows Server 2008 R2中,微软为IT管理员提供了一个设计来防止活动目录对象被意外删除的很好选项。这个选项对通过活动目录用户和计算机来管理的所有对象都可用,并且当你创建一个新的组织单元时,它是默认启用的。通过选择“防止容器被意外删除”选项,一个访问控制条目会被添加到对象的访问控制列表。
备注:默认情况下,意外删除保护仅仅对组织单元是默认启用的,并且不适用于用户对象。这意味着,如果你试图删除一个或者多个用户对象,即使你是位于一个受保护的组织单元内,你将会成功的(彻底删除)。
提到这一点,如果想要防止用户、组或者计算机对象被意外删除,那么你必须在对象属性里手动启用这个选项。更改ADUC里的查看选项,使其显示高级特性,打开对象属性窗口,并点击对象选项卡。你就可以在这里选择意外删除保护选项。
通过执行离线的碎片整理来管理活动目录大小
存在一些后台运行的预设的活动目录功能来保持环境健康。比如,在线维护周期保持定期检查数据库并且不需要管理员交互。然而,虽然数据库里的数据会定期进行碎片整理,但是数据库自身具有随着时间推移增加其规模的趋势。
如果管理员定期清除数据库记录的话,这一点会是特别真实的。例如,一个4GB的活动目录很有可能只包含不到1GB的数据,同时包含超过3GB的空白空间。这些空间可以通过执行一个离线的碎片整理来回收。
在Windows Server 2008中,活动目录是一个服务。在任何时候,只要你想要执行活动目录数据库的维护,你可以仅仅通过终止活动目录域服务来使其离线即可。
通过执行一个完整的系统状态备份来启动这个过程也是一个好主意。一旦一个成功的备份通过验证,那么请打开Windows资源管理器并定位到C:\Windows\NTDS文件夹。活动目录数据库就存储在NTDS.DIT文件里。你应该注意这个文件的大小,以便你可以稍后返回并计算出你收回了多少空间。
此时,你应该打开服务控制管理器,并终止活动目录域服务的服务。在这步完成之后,你将会看见一条信息,告诉你一些依赖服务也需要被终止。点击“Yes”来终止这些额外的服务。
一旦所有这些必需的服务已经被终止,那么请在服务器上打开命令提示符,并输入以下命令:
NTDSUTIL Activate Instance NTDS Files Info
此时,你应该会看到活动目录数据库使用的文件的一览表。你现在就可以通过输入以下命令来开始碎片整理过程:
Compact to c:\windows\ntds\defragged
请记住,根据你的数据库的大小,这个过程可能会花相当长一段时间才能完成,同时除非活动目录域服务以及所有依赖服务都恢复在线状态,你正在进行碎片整理的域控制器才可用。
当这个过程完成后,请转到C:\Windows\NTDS文件夹并把NTDS.DIT文件重新命名为NTDS.OLD。你可以稍后删除这个文件,但是把它保留到现在仅仅是以防数据库的碎片整理副本出现任何错误。现在,请把经过碎片整理的数据库从C:\Windows\NTDS\Defragged复制到C:\Windows\NTDS。
最后,重新启动活动目录域服务(依赖服务将会自动重新启动)。现在,你可以回过头看看,参照碎片整理之前,减少了多少空间。
主动预防技巧以及最佳做法
保持你的活动目录环境健壮的方法有许多。鉴于它的关键性质,应该采取各种方法来确保活动目录不会崩溃。当涉及到活动目录的稳定性、安全性以及健康性时,以下是一些主动预防方法的简要列表:
在每个域里重命名或者关闭管理员账户(以及访客账户)来防止对你的域的攻击。
管理两个森林之间的安全关系并简化跨森林的管理和身份认证。
在每个站点至少放置一个域控制器,同时为每个站点的域控制器编制一个全局目录。
不具有它们自己的域控制器以及至少一个全局目录的站点需要依赖其它站点来获取目录信息,并且效率相对较低。
当在复制到全局目录的目录对象上制定权限时,请使用全局组或者通用组而不是域本地组。
始终具有最新的备份并验证其一致性。
为了对活动目录架构提供额外的保护,请删除架构管理员组里的所有用户,并仅当需要进行架构更改时才添加一个用户到这个组。一旦更改已经完成,再把这个用户从该组删除。
通过确保合适的权限、良好的组织单元管理以及执行预防性维护来始终监控活动目录的健康。
【编辑推荐】