我遇到了一个高度定制的 Active Directory 环境 (2003 FL),这让我想知道是否有任何特别简单的方法来找出自定义属性的功能是什么,以及什么(如果有的话)在“使用”该特定属性。然后,从架构中删除自定义属性的一些好方法可能是什么。除了恢复或从头开始。如果存在这样的选项。
例如,我认为我可以相当确定值为 TRUE 的“isDumbass”属性的含义,但对于值为 393684 的“IRPextCONST”,我却不太确定。同样,我会思考删除“isDumbass”属性应该相当安全,但无论如何我都想 a) 确保万无一失,并且 b) 找出查询或更新该值的内容,因为我怀疑使用该属性的任何内容可能都是要删除的下一个内容。当然,理想情况下,不必搜索我能接触到的每个自定义脚本和源代码的内容。
最后,除了从头开始重建,或从不存在的备份中进行权威 AD 恢复之外... 有没有办法删除给定的自定义属性?(不是将值清空,而是从架构中删除属性 - 有些人宁愿不保留 [redacted] 之类的属性。)我已经能够在 Windows 2k 上找到并成功测试了一种方法,但似乎 Microsoft 在 SP4 中禁用了此选项,而有问题的域是 2003 功能级别。
答案1
至于查找使用属性的内容,我认为最好的办法是启用域控制器 GPO 的审核配置中的设置,对目录服务访问事件进行一些相当严格的记录,以及设置积极的审核 ACL 以在整个域中继承。日志可能会变得非常嘈杂。
如果可能的话,2008 中的新目录服务审计功能可能会对此过程有很大帮助;如果可以的话,请获取 2008 域控制器!
当您准备摆脱这些架构修改时 - 遗憾的是,没有办法真正清除架构修改的所有内存,但您至少可以停止其使用并使其看起来已被删除。
您将修改架构中的属性对象,使其具有值isDefunct
;TRUE
这可以通过 ADSIEdit 或 Active Directory 架构管理单元完成。请参阅“从架构中删除信息”部分本文档了解更多信息。
如果您不能 100% 确定某个属性已不再使用,可以尝试使其失效;您可以通过设置isDefunct
回原值来撤消更改FALSE
(重新激活时旧值仍会存在)。如果可能的话,一定要先进行审计,但选项在那里。
答案2
不,AD 架构属性应被视为永久的。
如果您只希望该属性不出现在“属性编辑器”选项卡中,或者对象可能显示可能属性列表的其他对话框中,您可能需要尝试在 AD Schema MMC 中编辑用户类对象,并从可选属性列表中删除该属性。您需要右键单击 Schema 根并选择“重新加载架构”才能使其生效,或者等待五分钟让域控制器重新加载架构。