当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何使用 Active Directory 回收站保存培根

作者:精品下载站 日期:2024-12-14 13:16:21 浏览:12 分类:玩电脑

如何使用 Active Directory 回收站保存培根


如果您不小心删除了 Active Directory 用户、计算机或 OU,您知道可以将其恢复吗?如果启用,Active Directory 回收站可以帮助您恢复该 AD 对象。

在本文中,您将了解如何使用 Active Directory 回收站立即启用和恢复对象!

如果您需要功能齐全的服务来轻松备份和恢复 Active Directory 对象等,请查看 Veeam Backup & Replication。

Active Directory 中的回收站如何工作?

当您启用回收站时,它会告诉 AD 不要立即从 AD 数据库中删除对象。删除 AD 对象时会发生两个阶段。

逻辑删除的对象

当您删除 AD 对象时,您可以认为该对象已“逻辑”删除。当一个对象被“逻辑”删除时,它实际上并没有从 AD 数据库中删除。相反,它只是被隐藏并移动到 CN=Deleted Objects 容器中,并且该对象的属性 isDeleted 设置为 TRUE

逻辑删除的对象可以恢复的时间由msDS-deletedObjectLifetime 属性设置。默认值与墓碑生命周期相同,默认为 180 天。

墓碑回收

一旦逻辑删除的对象超过 msDS-deletedObjectLifetime 属性定义的已删除对象生命周期,该对象就会被视为逻辑删除。此时,该对象是不可恢复的。

超出 msDS-deletedObjectLifetime 时间后,isRecycled 属性将设置为 TRUE,并且 isDeleted 属性仍保留正确。墓碑生命周期默认为 180 天。

一旦 AD 对象超过逻辑删除生存期,该对象就会通过垃圾收集从数据库中物理删除。

使用 ADAC 启用回收站

默认情况下,AD 回收站未启用。要使用这个方便的功能,您必须手动启用它。不要忘记,直到为时已晚!

要启用回收站:

  1. 导航到已加入域的工作站或域控制器上的 Active Directory 管理中心 (ADAC)。
  2. 单击左侧的域,然后找到右侧的任务菜单。
  3. 单击启用回收站选项以启用回收站,如下所示。

[玩转系统] 如何使用 Active Directory 回收站保存培根

然后,ADAC 将提示您确认是否启用回收站。

[玩转系统] 如何使用 Active Directory 回收站保存培根

根据您的域的大小,传播设置可能需要一些时间。

[玩转系统] 如何使用 Active Directory 回收站保存培根

刷新后,您应该会看到启用回收站选项现在呈灰色。

[玩转系统] 如何使用 Active Directory 回收站保存培根

使用 PowerShell 启用 Active Directory 回收站

如果出于某种原因,您需要自动启用回收站,则始终可以使用 PowerShell 和 Enable-ADOptionalFeature cmdlet 来实现。

以下是可用于在 PowerShell 中启用回收站的代码片段。下面的示例在林级别为 ad.lc-test.local 林启用回收站。

$Params = @{
  "Identity" = 'Recycle Bin Feature'
  "Scope"    = 'ForestOrConfigurationSet'
  "Target"   = 'ad.lc-test.local'
}

Enable-ADOptionalFeature @Params

使用 Active Directory 回收站 (ADAC) 恢复对象

启用回收站后,您现在就可以利用它了!我们首先从使用 ADAC 开始。

删除对象后但逻辑删除生存期到期之前:

  1. 导航到 ADAC 中的已删除对象容器。该容器保存所有已删除的 Active Directory 对象。

[玩转系统] 如何使用 Active Directory 回收站保存培根

2. 接下来,找到要恢复的对象。在本例中,我们正在寻找 TestUser2 对象。在右侧的“任务”菜单上,有四个选项。

  • 恢复 - 将对象恢复到其原始组织单位 (OU)。
  • 恢复到... - 不是将对象恢复到原始位置,而是选择其他组织部门来将对象恢复到其中。
  • 查找父级 - 此选项将直接带您前往包含该对象的组织部门。
  • 属性 - 查看非常有限的属性,例如修改的、创建的、对象类、规范名称或更新序列号 (USN)。

[玩转系统] 如何使用 Active Directory 回收站保存培根

在此示例中,我们将对象恢复到其位于用户容器中的原始组织单位。

3. 单击恢复按钮,如下所示,该对象现在返回到用户 OU 下。

[玩转系统] 如何使用 Active Directory 回收站保存培根

使用 Active Directory 回收站恢复对象 (PowerShell)

与该技术一样有用的是,使用 PowerShell 来完成与在 GUI 下完成的任务相同的任务通常更容易、更易于编写脚本。要使用 PowerShell 恢复 AD 对象:

  1. 在加入域的计算机或域控制器上,打开 PowerShell 并找到已删除的对象。确保您已安装 ActiveDirectory 模块。

相关:如何安装 Active Directory 模块

2. 使用 Get-ADObject 命令找到要删除的对象。

相关:Get-ADObject:使用 PowerShell 报告 Active Directory

您可以通过几种不同的方式查找对象,但始终使用 IncludeDeletedObjects 参数。要查找“已删除对象”容器中的所有对象,必须使用此参数。

如果您使用 -Filter * 等广泛的过滤器单独运行 Get-ADObject,您将看到大量不必要的结果。要仅定位那些应位于回收站中的结果,您可以像这样过滤对象。

相关:学习 PowerShell 中的 Active Directory 和 LDAP 过滤器

相反,创建一个过滤器来查找 isDeleted 属性设置为 true 且帐户名包含字符串 *DEL:* 的所有对象。此过滤器应该只返回已删除的对象。

Get-ADObject -Filter 'isDeleted -eq $true -and Name -like "*DEL:*"' -IncludeDeletedObjects

[玩转系统] 如何使用 Active Directory 回收站保存培根

使用 Get-ADObject 找到对象后,您现在可以将这些对象通过管道传输到 Restore-ADObject 命令。

Get-ADObject -Filter 'isDeleted -eq $true -and Name -like "*DEL:*"' -IncludeDeletedObjects | Restore-ADObject

一旦恢复(希望)发生,您应该验证对象是否已恢复。为此,请再次运行 Get-ADObject 命令并确认您不再看到返回的对象。如果没有,那你就可以走了!

您还可以选择运行 Get-ADUserGet-ADComputer 以确保对象确实显示。

Get-ADObject -Filter 'isDeleted -eq $true -and Name -like "*DEL:*"' -IncludeDeletedObjects

Get-ADUser -Identity 'TestUser5'

[玩转系统] 如何使用 Active Directory 回收站保存培根

清空 Active Directory 回收站

如果您想删除所有回收的 AD 对象,可以使用 PowerShell 来执行此操作。像之前一样找到所有已删除的对象,并将它们通过管道传输到 Remove-ADObject 命令,如下所示。

在下面的示例中,Confirm 参数设置为 false。使用此参数将立即删除每个对象,无需任何确认!

Get-ADObject -Filter 'isDeleted -eq $true -and Name -like "*DEL:*"' -IncludeDeletedObjects | Remove-ADObject -Confirm:$false

更改墓碑的寿命

默认情况下,Active Directory 回收站的逻辑删除生存期为 180 天。但也许你想改变这一点。同样,使用 PowerShell,您可以实现这一目标。

  1. 首先,使用下面的代码片段找到现有的生命周期,以确保它尚未按要求设置。该值存储在 tombstoneLifetime AD 属性中。
$ADNamingContext = (Get-ADRootDSE).configurationNamingContext

$Params = @{
  "Identity"   = "CN=Directory Service,CN=Windows NT,CN=Services,$ADNamingContext"
  "Partition"  = $ADNamingContext
  "Properties" = '*'
}

Get-ADObject @Params | Select-Object -Property tombstoneLifetime

2. 接下来,将逻辑删除生命周期更改为其他值。假设您希望将生命周期延长至一整年或 365 天。您可以通过使用 Set-ADObject cmdlet 并向其传递以下所有必需参数来完成此操作。

$ADNamingContext = (Get-ADRootDSE).configurationNamingContext

$Params = @{
  "Identity"  = "CN=Directory Service,CN=Windows NT,CN=Services,$ADNamingContext"
  "Partition" = $ADNamingContext
  "Replace"   = @{tombstoneLifetime='365'}
}

Set-ADObject @Params

此更改将立即生效,无需重新启动任何服务。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯