
























通过这段代码,结合创建 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 = 0;

// Enumerate All Stores
stores = SearchContainer(storeGroup.Properties["distinguishedName"][0].ToString(),
"(objectCategory=msExchPrivateMDB)");
foreach (SearchResult store in stores)
{
Response.Write(" " + store.GetDirectoryEntry().Properties["cn"].Value.ToString() + "<br/>");
Response.Write(" Number of Mailboxes: " +
store.GetDirectoryEntry().Properties["homeMDBBL"].Count.ToString() + "<br/>");

mailboxCount += store.GetDirectoryEntry().Properties["homeMDBBL"].Count;
}

string reportMsg = String.Format("Total Number of Mailboxes in Storage Group({0}): {1}<br/><br/>", storeGroupName, mailboxCount);
Response.Write(reportMsg);
}
}
}

private SearchResultCollection SearchContainer(string srvPath, string strFilter)
{
string ldapPath = "LDAP://" + srvPath;
DirectoryEntry serverContainer = new DirectoryEntry(ldapPath);

DirectorySearcher serverSearcher = new DirectorySearcher(serverContainer);
serverSearcher.Filter = strFilter;
serverSearcher.SearchScope = SearchScope.Subtree;

serverSearcher.PropertiesToLoad.Add("cn");
serverSearcher.PropertiesToLoad.Add("distinguishedName");
serverSearcher.PropertiesToLoad.Add("homeMDBBL");

SearchResultCollection results = serverSearcher.FindAll();

return results;
}

关于Exchange的收藏夹几个必备站点:
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。