摘要:通过以下代码枚举列出所有的Exchange Server、StoreGroups和MailStore,并获取每个MailStore中Mailbox的数量。本段C#代码为http://www.ureader.com/message/513012.aspx一文中的VBNET代码改写而成,在Exchange 2003环境中测试通过。
通过这段代码,结合创建 Mailbox 的代码,可以实现获取Exchange环境的Server、StoreGroup、MailStore和Mailbox信息,或在指定Store(比如在所有Store中最少Mailbox的那个,或者人为指定目标Store)中创建Mailbox。
protected void Page_Load(object sender, EventArgs e)
{
DirectoryEntry RootDSE = new DirectoryEntry("LDAP://RootDSE");
string rootPath = "LDAP://" + RootDSE.Properties["configurationNamingContext"].Value.ToString();
DirectoryEntry configContainer = new DirectoryEntry(rootPath);
DirectorySearcher configSearcher = new DirectorySearcher(configContainer);
configSearcher.SearchRoot = configContainer;
configSearcher.Filter = "(objectCategory=msExchExchangeServer)";
// Enumerate all Exchange Servers
SearchResultCollection serverResults = configSearcher.FindAll();
foreach (SearchResult serverResult in serverResults)
{
Response.Write("<br/><br/><font color=\"red\">=== Exchange Server: " + serverResult.GetDirectoryEntry().Properties["cn"].Value.ToString() + " ===</font><br/><br/>");
SearchResultCollection storeGroups;
SearchResultCollection stores;
int mailboxCount;
// Enumerate all Store Groups
storeGroups = SearchContainer(serverResult.Properties["distinguishedName"][0].ToString(),
"(objectCategory=msExchStorageGroup)");
foreach (SearchResult storeGroup in storeGroups)
{
string storeGroupName = storeGroup.GetDirectoryEntry().Properties["cn"].Value.ToString();
Response.Write(storeGroupName + "<br/>");
mailboxCount......[
阅读全文]