访问Active Directory中资源邮箱的自定义资源属性

时间:2009-10-19 14:03:03

标签: active-directory

(此帖子引用了Exchange 2010,但Exchange 2007中引入了资源邮箱的功能)

Exchange允许您为会议室创建不同类型的邮箱 - 资源邮箱 - 并为其分配自定义属性,例如: “白板”,“A / V”。这些属性似乎是布尔值,例如会议室是否有白板。您可以在Exchange 2010管理控制台(或命令行管理程序)中将这些邮箱分配给邮箱。

我正在试图弄清楚如何以编程方式访问这些属性。 Exchange Web服务API似乎并非出于此目的,因为所有基础数​​据最终都存储在Active Directory中。

例如,会议室邮箱特有的一个属性是“资源容量”,您可以按如下方式从Active Directory中获取该属性:

child.Properties["msExchResourceCapacity"]

当您迭代Active Directory的内容时,“child”表示DirectoryEntry对象。

http://msdn.microsoft.com/en-us/library/ms675085(VS.85).aspx浏览Active Directory架构后,没有任何内容突然袭来。

由于

1 个答案:

答案 0 :(得分:2)

资源自定义属性(问题中的“白板”,“A / V”)存储在多值msExchResourcePropertySchema - CN=Resource Schema,CN=Global Settings,CN=Exchange 2010,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=ex2010,DC=lab属性的Active Directory配置分区中。 (因此,如果连接到DC=ex2010,DC=lab,则无法找到该信息 - 您需要连接到配置分区命名空间 - CN=Configuration,DC=ex2010,DC=lab。)

您需要使用Set-ResourceConfig cmdlet添加可选的自定义资源属性(例如:Set-ResourceConfig -DomainController dc01.ex2010.lab -ResourcePropertySchema ("Room/16Seats","Equipment/Projector","Room/8Seats","Equipment/Whiteboard"))。然后,您需要使用Set-MailBox cmdlet(即Set-MailBox roomtest -ResourceCustom "8Seats")为该特定资源邮箱设置资源自定义属性。

我建议不要手动设置这些特定于Exchange的属性(即通过System.DirectoryServices),因为它可能会导致不可预测的结果。支持的方法是使用cmdlet。因此,我建议您从.NET代码中调用cmdlet。有tutorial on CodeProject to get you started