在某些场景下,管理员可能意外大批量重置了用户密码或计算机密码,比如直接删除了只读域控计算机账户且忽略了删除警告(如下图),导致在此RODC上缓存的用户和计算机的密码被重置。

用户或计算机密码被批量重置后的紧急恢复_计算机密码恢复


如果是用户,可以手动重置这些用户密码并要求下次登录更改密码来快速解决,但计算机就麻烦了,因为需要退域再加域的方法进行处理,这需要到每台客户端处理,如果有大量计算机密码被重置,这工作量难以想像。

针对这种情况,如果有备份,可以进入目录服务还原模式 (DSRM) 模式下进行相应计算机和用户的权威还原,但这个操作非常繁琐,为了避免其间的误操作导致整个域出现问题,多半你不敢也不会采用这种方式,这里介绍一种已验证过的可以安全应对这种灾难场景的方法,一切都在图形界面下完成,安全,不用担心对域产生二次伤害。

用户或计算机密码被批量重置后的紧急恢复_计算机密码恢复_02


基本思路是利用临时的veeam备份服务器作为摆渡,先把从备份完整恢复的应急隔离DC备份到veeam备份服务器,然后veeam备份服务器与此应急DC断开,接入生产环境,把相应的用户和计算机恢复到生产环境DC


这种方法的前提要求是:有最近的AD备份或AD虚拟机快照也行,最好是头一天的,不要超过一周,因为默认情况下计算机密码会周期性更新,备份太旧,恢复的密码与客户端的密码也对应不上(除非之前应用了禁止计算机更改密码策略),恢复也没用。


注意:大部分备份软件可以进行AD对象属性级的恢复,比如恢复用户的电话号码,但不能恢复密码,有些号称可以恢复密码的实际是利用AD回收站功能,也就是这些对象删除后才有用,上面我们说的这种情况对象密码重置前该对象并没有被删除,所以恢复无效,不然也用不着veeam来进行摆渡。

这里说的大部分备份软件不包括veeam,如果你碰巧用的veeam备份AD,那直接采用2.4节的方法应急恢复即可。


一、恢复用户和计算机密码大纲步骤

  1. 通过备份或之前的底层快照恢复一个独立的虚拟机应急域控,这个域控与现有的域环境不能进行网络上的通信,可以设置此应急虚拟机为独立网段,比如不设置网关,不与其他DC相通。注意,如果给生产域控做过快照,不要想着用快照去恢复域控,如果你这样做了,不但解决不了问题,还会带来二次伤害,切记,由于这个不是本文主题,这里就不细表了。
    这一步约需1个小时。
  2. 临时安装一台veeam备份虚拟机,此虚拟机不用加域,但操作系统版本要大于等于现有生产域控的版本。先配置此虚拟机与上面的应急DC一个网段,也不要与生产DC相通,DNS指向应急DC这一步可以与第1步同时进行,加上下载软件的时间,估计1小时。
  3. 在应急DC上安装veeam备份代理,备份数据到上面的veeam备份服务器。由于应急DC是之前的备份,所以里面的对象具有以前的密码。这一步约需10分钟。
  4. 修改veeam备份服务器IP,让它可以接入生产DC,修改其DNS,指向生产DC这一步约需10分钟,加上前面的时间,也就是约2个半小时后可进入下面的应急恢复了。
  5. 从veeam备份服务器恢复用户或计算机密码到生产DC
  6. 用户密码恢复后马上生效,计算机密码恢复后需要重启两次(如果客户端关机的情况下,开机后进入登录界面后需要再重启一次)。


二、具体步骤:

2.1 通过备份或之前的底层快照恢复一个独立的虚拟机应急域控

由于不同的备份软件恢复步骤不同,这一步就根据你的环境自行处理。如果本身用veeam备份,直接进入2.4

2.2 安装一台veeam备份虚拟机,

此虚拟机不用加域,但操作系统版本要大于等于现有生产域控的版本。先配置此虚拟机与上面的应急DC一个网段,也不要与生产DC相通,DNS指向应急DC

如果你没有veeam软件也没关系,直接到官方下载一个试用版即可。安装步骤也很简单,选择安装veeam backup & replication,然后一直下一步,按默认设置安装即可。

用户或计算机密码被批量重置后的紧急恢复_计算机密码恢复_03


2.3 在应急DC上安装veeam备份代理,备份数据到上面的veeam备份服务器

1Veeam备份代理在备份服务器的c:\programdata\veeam\agents\vaw目录下,如下图,先安装前置组件,然后再运行代理程序安装即可。

用户或计算机密码被批量重置后的紧急恢复_计算机密码恢复_04


2,安装完成后在桌面右下角托盘区右击veeam代理图标,选backup>backup now

用户或计算机密码被批量重置后的紧急恢复_计算机密码恢复_05


在备份模式这里选Entire Computer

用户或计算机密码被批量重置后的紧急恢复_计算机密码恢复_06


备份文件目标选veeam备份服务器,也就是把此应急DC备到veeam服务器,

用户或计算机密码被批量重置后的紧急恢复_计算机密码恢复_07


输入备份服务器的IP和管理员密码。

用户或计算机密码被批量重置后的紧急恢复_计算机密码恢复_08


选Enable application-aware processing,以识别备份的AD数据。

用户或计算机密码被批量重置后的紧急恢复_计算机密码恢复_09


取消计划任务,因为这里只需要备份一次。

用户或计算机密码被批量重置后的紧急恢复_计算机密码恢复_10


最后选择运行任务,会立即开始备份。

用户或计算机密码被批量重置后的紧急恢复_计算机密码恢复_11


备份过程有进度,备份完成有提示。

用户或计算机密码被批量重置后的紧急恢复_计算机密码恢复_12



2.4 veeam备份服务器接入生产环境进行应急恢复

修改veeam备份服务器IP,让它可以接入生产DC,修改其DNS,指向生产DC,完成后打开veeam控制台。

  1. 把home菜单显示出来。
  2. 进入home>backups>disk,在右窗格agents下面右击上面的备份任务,选restore application items>Microsoft Active directory objects
  3. 在打开的窗口一直下一步直到完成。

用户或计算机密码被批量重置后的紧急恢复_计算机密码恢复_13


完成后会加载VEEAM EXPLORER FOR MICROSOFT ACTIVE DIRECTORY,在里面可以基于熟悉的GUI界面进行对象级恢复。

  1. 找到相应对象,比如这里是一台计算机,右击之,有两个选项:

Restore objects to <a DC>Restore objects to…

第一选项是直接把对象恢复到这个名字的域控(与应急DC同名的域控),

第二选项可以把对象恢复到指定的其他域控。

通常选第一个就行了,因为生产环境肯定也有这台DC

用户或计算机密码被批量重置后的紧急恢复_计算机密码恢复_14


然后会弹出要求输入域的管理员及密码(如果veeam这台服务器本地管理员和域管理员账户和密码相同,不会弹此框)。

用户或计算机密码被批量重置后的紧急恢复_计算机密码恢复_15


恢复成功后会有提示,这个选项密码也会恢复。

用户或计算机密码被批量重置后的紧急恢复_计算机密码恢复_16


如果是选第二个选项Restore objects to…,还有单独的密码恢复选项。

用户或计算机密码被批量重置后的紧急恢复_计算机密码恢复_17


在应急情况下,建议选第一个,更快。第二个选项要多很多输入与选择。

用户的密码恢复过程一样,这里不再赘述。


说明:上面的恢复是演示的单个账户,在真实场景中,你需要知道最近变更的对象,比如最近24小时内有修改的计算机,需要进入生产DC运行下面的命令:

Get-ADcomputer -searchbase 'DC=253data,DC=COM' -ldapfilter '(&(objectCategory=computer)(objectClass=computer)(whenChanged>=20230505000000.0Z))' | Export-CSV c:\pclist.csv -NoTypeInformation -Encoding UTF8



找到上面的用户后再进入veeam里面查找,但图形查找可能太慢,veeam也支持ldap过滤器查找,可以把上面导出的列表转成ldap过滤器,比如同时查找hq-s-file01和hq-s-filedr01两台:

(|name=hq-s-filedr01)(name=hq-s-file01))

用户或计算机密码被批量重置后的紧急恢复_计算机密码恢复_18


2.5 终端测试

在计算机密码被重置后,登录时会报下面的错。

用户或计算机密码被批量重置后的紧急恢复_计算机密码恢复_19


当上面的恢复完成后,需要重启一次计算机,此时不会报上面的错,但你输入用户密码后可能还会报用户密码错,虽然实际并没有错,此时需要你再重启一次,再输入用户和密码就没问题了。


三、其他思考

  1. 除了上面的方法,还有没有其他快捷方便的方法呢?我曾经考虑过用迁移的方法进行恢复,也就是利用上面恢复的应急DC改名,改成另外一个域名如source.com,然后把它里面的账户迁移到生产DC,实现密码的恢复,但实际这样不行,因为虽然应急DC改了域名,但实际上仍然是原来的域,两边的对象SID没有变,这时域间做信任就通过不了,也就没法做进一步的ADMT了。
  2. 如果利用备份的方法实现不了,只有通过重新加域的办法来解决计算机密码问题。常规加域是先退域,重启,再加域,再重启,这个过程太费时间,这里给一种简单的办法,虽然也要到客户端运行命令,但命令成功后立马生效,不用退域加域。

Reset-ComputerMachinePassword -Server "your-dc-name" -Credential domainname\administrator