不久前,我使用 PowerShell 启用了 Active Directory 回收站。当时我知道这是有效的,因为以下结果:
Get-ADOptionalFeature -filter * | select Name,FeatureScope,ObjectClass,RequiredForestMode | fl
Name : Recycle Bin Feature
FeatureScope : {ForestOrConfigurationSet}
ObjectClass : msDS-OptionalFeature
RequiredForestMode : Windows2008R2Forest
我的森林设置正确
Get-ADForest | select -expand forestmode
Windows2008R2Forest
所以一切似乎都得到了控制。然而,在测试删除用户和容器时,我无法找到它们以恢复这些对象。唯一显示的是已删除的容器本身
Get-ADObject -SearchBase "CN=Deleted Objects,DC=ba,DC=net" -Filter "*" -includeDeletedObjects
Deleted : True
DistinguishedName : CN=Deleted Objects,DC=BA,DC=NET
Name : Deleted Objects
ObjectClass : container
ObjectGUID : 4d59a6f2-eff1-494c-9e9a-a1731f19ac4b
从从其他关于如何设置的教程中我可以看出那应该会出现。但对我来说,那里应该还有其他在过去几周被删除的对象。
我以企业管理员用户的身份运行测试。搜索“回收站”和“活动目录”会让我找到其他有类似问题的用户,但大多数问题都可以通过实际启用该功能或处于较低的林级别来解决。就我而言,这两种方法都是正确的。不确定我在这里做错了什么或假设了什么。
一个很可能相关的事实是,我无法从 ldp.exe 中看到这个“已删除对象”容器,因为我用来比较的这个指南。最后一步是查看容器:
展开控制台树中的林根域,如图 8 所示。双击“CN=Deleted Objects,DC=Domain,DC=local”节点,其中 DC=Domain,DC=local 是林根域的可分辨名称。
在同一页面上,另一个 PowerShell 测试显示的结果与我的问题相矛盾,如下所示:
Get-ADObject -ldapFilter:"(msDS-LastKnownRDN=*)" -IncludeDeletedObjects
当我运行该命令时我得到一些的用户帐户和组我在测试时删除了它。根据TechNet 上的此页面论坛虽然这意味着垃圾箱已被启用。
答案1
您处于正确的林级别,但您用来验证回收站是否已启用的查询不正确。无论回收站是否已启用,“已删除对象”容器都存在。如果未启用,则它将保存具有有限属性的逻辑删除对象;如果已启用,则已删除的对象将在对象的整个生命周期内保持其属性。
使用以下命令验证回收站是否确实启用:
$RecycleBin = Get-ADOptionalFeature -Filter {Name -eq "Recycle Bin Feature"}
(True为不启用,False为启用)
"[string]::IsNullOrEmpty($RecycleBin.EnabledScopes)" # Without quotes
当您运行该Get-ADOptionalFeature -Filter {Name -eq "Recycle Bin Feature"}
命令时,如果 EnabledScopes 属性为空 {},则表示未启用。
答案2
这是一个相当老的问题了,但对我来说,问题在于Get-ADObject
从非管理员 PowerShell 运行命令。对某些人来说可能很明显,但它从非管理员 shell 返回几个条目这一事实让我感到困惑。
无论如何,以管理员身份打开 PowerShell 后,我现在可以看到数千个,就像我所期望的我们繁忙的域一样。