gpt4 book ai didi

c# - 如何在 C# 中检测目标服务器中安装了哪个版本的 exchange?

转载 作者:行者123 更新时间:2023-11-30 16:19:29 37 4
gpt4 key购买 nike

有没有办法通过 C# 检测正在运行的 Exchange Server 版本(2003 或 2007 或 2010)?

我已经完成了 here .但是,Power Shell 1.0 不支持使用“\ROOT\MicrosoftExchangeV2”运行 WMI 查询。

因为我有场景来获取在特定服务器中找到的所有用户和组邮箱列表并将其转换为 csv 文件。

以下是我们计划用C#实现的方式

if(ExchangeVersion == "2003")
GetExchange2003UserList();
else if(ExchangeVersion == "2007")
GetExchange2007UserList();
else if(ExchangeVersion == "2010")
GetExchange2010serList();

请提供建议并引用链接

最佳答案

我可以在 CN=Configuration,DC=domain,DC=local 命名上下文中使用 Active Directory LDAP 查询来完成。我在这里分享代码:

 public static string getExchangeServerVersion()
{
try
{
string domain =Domain.GetCurrentDomain().ToString();
DirectoryEntry rootDSE = new DirectoryEntry(string.Format("LDAP://{0}/rootDSE", domain));
DirectoryEntry objDirectoryEntry = new DirectoryEntry(string.Format("LDAP://{0}/{1}",domain,rootDSE.Properties["configurationNamingContext"].Value.ToString()));
DirectorySearcher searcher = new DirectorySearcher(objDirectoryEntry, "(&(objectClass=msExchExchangeServer))");
SearchResultCollection col = searcher.FindAll();
string version = string.Empty;
foreach (SearchResult result in col)
{
DirectoryEntry user = result.GetDirectoryEntry();
if (String.Equals(user.Properties["name"].Value.ToString(),Dns.GetHostName(),StringComparison.InvariantCultureIgnoreCase))
{
version = user.Properties["serialNumber"].Value.ToString();
break;
}
}
return version;

}
catch (Exception ex)
{
Console.WriteLine("\nError : " + ex.Message);
return "";
}
}

主要功能:

static void main()
{

string exchangeServerVersion = string.Empty;
exchangeServerVersion =getExchangeServerVersion();
if (exchangeServerVersion.Contains("Version 6"))
{
users.GetExchange2003UserList();
GetADGroupList();
}
else if (exchangeServerVersion.Contains("Version 8"))
{
users.GetExchange2007UserList();
GetADGroupList();
}
else if (exchangeServerVersion.Contains("Version 14"))
{
users.GetExchange2010UserList();
GetADGroupList();
}
}

由于所有版本都支持ldap。希望它对每个人都有用。

如果有任何其他方法可以从 C# 获取交换版本,也请分享。

关于c# - 如何在 C# 中检测目标服务器中安装了哪个版本的 exchange?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15271795/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com