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