2024年3月29日发(作者:)

AD用户被删除恢复

2011/09/08事故处

一、域级别:windows2003

恢复思路和步骤:

 恢复AD用户对象

 补充用户丢失的属性

 扫描标记中断邮箱

 重连接邮箱

 更新OAB

 重新启用GC

 站点同步

 启用OCS权限

 重新提交Unreachable邮件队列

二、技术层面预防措施

仅针对AD的内容:

 建立AD备份站点

 备份NTDS数据

 备份域证书、DNS、DHCP

 故障恢复测试

 若可行升级至2008域级别

三、DC恢复工具或者方式

Name

非授权还原

以结合授权还原,需要测试

使用ntdsutil在备份DC/GC上提升存在对象的USN版本。误删除、

修改可恢复,保留原属性。

恢复关键属性ObjectGUID,objectSid, Name,其他属性丢失

导出容易,导进比较麻烦要修改导出的ldf文件,可新增、可修改;

授权还原也会使用,可配合Adrestore;

针对误删除的所有对象,恢复所有属性

说明

使用状态备份恢复系统状态,USN不变。多DC要考虑影响。或许可

Support Platform

ALL

Server2003 UP

Server2003 UP

授权还原

Adrestore/

Ldifde/csvde

回收站

All

Server 2008R2

一、步骤:

1. 恢复AD用户

查看AD中被删除的对象:

c:adrestore

或者使用powershell查看

PS C:>$begin=New-Object DateTime(2011,09,08,8,0,0)

PS C:>Get-ADObject -SearchBase "DC=aibed,DC=com" -Filter 'whenChanged -gt $begin -and Deleted -eq $true -and

ObjectClass -eq "user"' -IncludeDeletedObjects

如果开启了Recycle,可以在这里进行恢复

PS C:>restore-adobject

或者使用查看

C:

选择connection,connect to dc01

选择connection,bind用户名 xxx

选择options , controls , load predefined, return deleted object

选择View, Tree, 选择CN=Deleted Objects,DC=aibed,DC=com

打开节点CN=Deleted Objects,DC=aibed,DC=com

能看到被删除的对象

如图:

接下来繁琐的事情,恢复删除的对象,在网上查了下这个工具可视化更

高些

C:adrestore -r TS这里的”TS”为关键字可以为对象名称中的字符

恢复大部分之后使用上面的查询检测是否有遗漏

恢复后的AD对象只包含有用的ObjectGUID,objectSid, Name,其他属性都丢失,账号也处于

禁用状态,需要进行批量操作

dsquery user "CEO Office,DC=aibed,DC=com" -disabled >c:admin_

dsquery user "CFO Office,DC=aibed,DC=com" -disabled >c:admin_

dsquery user "CSOOffice,DC=aibed,DC=com" -disabled >c:admin_

dsquery user "SVPOffice,DC=aibed,DC=com" -disabled >c:admin_

rem 批量更改密码,启用账号,

for /F "usebackqdelims=!" %%i in () do (

dsmod user %%i -disabled no -pwd "qwe123!"

)

手动更新UPN

或者使用更简易的Powershell

#查询刚恢复的AD user,记录SID

PS C:>$uid=get-aduser -SearchBase "DC=aibed,DC=com" -Filter {Enabled -eq $False} -property

whenChanged|where {$_.UserPrincipalName -notmatch "@" -and $_.whenChanged -ge (get-date

-uformat "%Y/%m/%d")}|select sid

#更改密码,启用账号,更新UPN

PSC:>$uid|foreach{$sam=get-aduser-id$_.sid|select

SamAccountName;$UPN=$ountName+"@";Set-ADAccountPassword

-UserPrincipalName $UPN}

-id $_.sid

-NewPassword (ConvertTo-SecureString -AsPlainText "qwe123!" -Force);set-aduser -id $_.sid -Enabled $true

2. 补充用户丢失的属性,繁重的事情

包括UPN、工号、所属组、DisplayName

3. 扫描并标记丢失的邮箱

登录邮箱服务器

#扫描标记中断邮箱

Get-MailboxDatabase |Clean-MailboxDatabase

#

查询中断的邮箱

Get-Mailboxserver |foreach{ Get-MailboxStatistics -server $_.name

{$_.DisconnectDate -like "2011/9/8*"}|selectDisplayName,Identity, database

4. 重新连接邮箱(这一步需要保证账号的UPN(UserPrincipalName)配置正确)

最好是手动通过EMC控制台连接,可以先过滤出最近断开的邮箱

………

如果DisplayName已经补全且命名方式和以前一致

可以通过Exchange Powershell批量连接,处理完之后再手动处理出错的

PSC:>$DMB=Get-Mailboxserver

|foreach{ Get-MailboxStatistics -server $_.name

}|where

}|where

{$_.DisconnectDate -like "2011/9/8*"}|selectDisplayName,Identity, database

PSC:> $DMB|foreach{connect-Mailbox -Identity $_.Identity -User $_.DisplayName -Database

$_.database}

5. 更新OAB

如果OAB不更新,当地址等信息变更之后,Outlook使用Exchange模式发送邮件会出错

同时地址变更需要即时生效,也同理

PSC:>

Get-EmailAddressPolicy |update-EmailAddressPolicy

PSC:>

Get-GlobalAddressList|update-GlobalAddressList

PSC:>

Get-OfflineAddressBook|update-OfflineAddressBook

PSC:>

Get-ExchangeServer |where {$_.IsClientAccessServer

foreach{Update-FileDistributionService -Identity $_.Name -Type "OAB"}

6. 当UPN进行了更改,最好是更新下GC

需要等待几分钟才会有效。

可以LDP连接3268端口验证

-eq $True}|

也可以使用telnet dc01 3268

7. 触发站点数据同步

repadmin /replicate dc02dc01 "DC=aibed,DC=com"

repadmin /showrepldc02

8. 开启OCS这里,有个技巧做批量开启

登录ocs02,先借助查询条件查出未开权限的用户,再多选开通

xxxxx

9. 从新提交Unreachable队列

retry-queue hub01Unreachable -Resubmit $true

retry-queue hub02Unreachable -Resubmit $true

二、技术层面预防措施

步骤:

1. 建立单独的一个站点不提供给应用或者用户使用。

SiteName:_BK DC类型:RW

入站复制关系:Aibed(dc02)_BK

复制计划:24小时或者48小时

发现误删除或者误修改,立即中止或者调整入站复制时间。

备份站点功能:

A.用于授权还原对象B.备份或者查看一段时间同步前对象

进行授权还原最好只是在用户对象上进行,做之前有时间最好备份

1)REM停止入站复制

Repadmin /options bk-dc_name+disable_inbound_repl

2)REM停止备份站点AD服务NTDS(AD DS Domain Controller service)

Sc stop NTDS

3)REM 使用ntdsutil授权还原,增大USN版本

ntdsutil "Activate Instance NTDS" "Authoritative restore" "Restore object "CN---""

4)REM启动NTDS服务

Sc start NTDS

5)REM激活复制

repadmin /replicate [des_dc] [src_dc] "DC=aibed,DC=com"

例子:repadmin /replicate dc02dc01 "dc=aibed,dc=com"从dc01复制到dc02

6)REM如果生成了ldf文件需要在其他DC上手动执行

Ldifde -I -f

7)开启入站复制

Repadmin /options bk-dc_name-disable_inbound_repl

详细介绍:

/kb/840001

2. 备份NTDS数据

使用微软工具,热备份

-b [username]aibed[password] -s dc01-f

REM _Hot_

@echo off

Set BKDIR=C:admin_scripts

Set FName=%date:~11,12%.ldf

ldifde-f %BKDIR%%FName%

备份DC系统状态,请参见NBU或者 Windows Backup。

Dc02已加入备份

3. 使用windows工具备份DNS等

参考:

/blogs/guyt/archive/2007/12/15/

/2010/04/

/kb/840001