今天误删了公司的几个账号,在网上找到了下面的恢复方法,做个记录吧!

在Windows文件系统下如果直接删除文件,只是为文件打上“已删除”的标记,数据并未立即从硬盘上删除,我们称之为“逻辑删除”,同样的道理,在AD中,直接删除AD对象其实也是逻辑删除,在Windows 2008中这个对象保留的时间还相当长,默认为180天,这个时间术语也称为“墓碑时间”,正因为如此,所以我们可以手动恢复被误删的AD对象。

 

假如原先AD中有个用户对象user33,属性如图:

手动恢复误删的AD对象

为了陪衬,我还建了一个OU1和其中的user4帐号,然后我们将user33和ou1都删除掉,模拟误删除。注意ou1为了能直接删除,在创建时不要勾选“防止误删除”那一项。
手动恢复误删的AD对象

 

 

手动恢复步骤如下:

 

运行ldp工具,如果没有这个工具,请安装ADLDS角色,选择[连接]菜单,设置连接到node1:389实例,即当前ADDS服务

手动恢复误删的AD对象 

然后绑定当前帐号权限(要用administrator@ad01.com登录)
手动恢复误删的AD对象 

手动恢复误删的AD对象 

开始搜索被误删的对象
手动恢复误删的AD对象 

 

基本DN填入逻辑删除时将对象临时存放的容器cn=deleted objects,dc=ad01,dc=com(如果不知道LDAP表示法,就不要玩了)搜索所有被逻辑删除的对象筛选器为objectclass=*,如果只搜索用户对象,则为objectclass=user,然后单击[选项]
手动恢复误删的AD对象 

手动恢复误删的AD对象 

手动恢复误删的AD对象

 

结果搜索出来了,显示所有被逻辑删除的对象,它们的共同特征是对象DN名被增加了\0ADEL这样的字符,然后我们选择要恢复的对象DN,点击MOUSE右键选择复制
手动恢复误删的AD对象

 

下面对被删除的对象进行属性值修改
手动恢复误删的AD对象 

 

粘贴刚才拷过来的DN名,然后按下面顺序执行操作,下面的操作是删除这个逻辑删除对象的isDeleted属性值,即把它改成未被删除的状态
手动恢复误删的AD对象 

然后重命名这个逻辑删除对象DN名,建议跟以前的DN名一致,最后点击运行,就执行了这2个操作
手动恢复误删的AD对象


如果没有显示任何错误信息,则执行成功,对象恢复成功
手动恢复误删的AD对象

 

不过,细心的你一定会发现,虽然对象恢复成功了,但很多属性值都不见了,比如原来的显示名称和电话号码属性都不见,这是怎么回事呢?

手动恢复误删的AD对象

 

原来,AD在做逻辑删除的时候还是会把对象的大多数属性清空的,只保留了对象的一些关键属性,如SID值,这是设计使然,不过我们也不是没有办法,我们可以提前设置在清空时要保留的属性值,这样在恢复时就可以还原

为了测试,我们重新设置一下user33的属性值,待会我们将打算删除时保留“显示名称”和“电话号码”两个属性,作为参照,我们不会保留“办公室”这个属性。

手动恢复误删的AD对象

 

这个保留属性值的设置跟AD架构有关,在AD架构中大多数属性名中有一个叫做searchFlags的属性值,如果在原有值的基础上加上0x8,就可以在删除时保留这个属性名对应的属性。我们启动ADSIEDIT工具(在系统的“开始/管理工具”菜单中)进入到AD架构中进行相应的修改(注意,ADSIEDIT的修改可能导致AD损坏等严重的后果,除非你清醒的知道你在做什么,请不要在生产环境中像使用regedit那样随意使用它)

手动恢复误删的AD对象

 

在AD架构中找到CN=Display-Name属性名(对应中文名就是用户帐号的“显示名称”属性),然后在现有0x5值的基础上加上8(十进制8跟十六进制8是相同的),在此输入13(8+5=13),是十进制的

手动恢复误删的AD对象

 

然后再找到要保留的CN=Telephone-Number属性名,它对应的中文名即“电话号码”,作类似的修改

手动恢复误删的AD对象

 

修改完成后属性值都会显示PERSERVE_ON_DELETE,表明为删除时预留的属性项

手动恢复误删的AD对象

 

修改完AD架构后,手动重启ADDS服务

手动恢复误删的AD对象

 

最后我们删除user33对象,并按照前述手动恢复步骤的方面恢复user33,现在,我们看到“显示名称”、“电话号码”都恢复过来了,但是由于“办公室”对应的属性我们并未设置,所以它没有恢复出来。

手动恢复误删的AD对象

 

再演示一下OU1的恢复,其实也差不多

手动恢复误删的AD对象

 

但是,可惜的是OU1中的用户帐号user4并不会跟着一块恢复

手动恢复误删的AD对象

 

以下,是常用属性名的中英文对照,可以按照自己的需要预先作为保留设置:

-----------------------------

属性中文名,属性英文名,属性值示例

-----------------------------------

名字,givenName,张三
姓氏,sn,zhangsan
显示名称:displayName,张三
地址:streetAddress,花园街6号
市/县:l,福州
省/市/自治区,st,福建
邮政编码:postalCode,350001
国家/地区:co,中国
电子邮件:mail,zhangsan@ldap01.com

职务,title,软件工程师
单位,company,未来科技
部门,department,开发一部
办公室,physicalDeliveryOfficeName;Room305
电话号码:telephoneNumber,3009

-------------------------------------------

 

最后,作为迷底,这个墓碑时间的设置在哪呢,请看下图:

手动恢复误删的AD对象