如何在C#中检测目标服务器中安装了哪个版本的exchange?
有没有办法通过c#检测Exchange Server的哪个版本正在运行(2003、2007或2010) 我已经通过了考试。但是power shell 1.0不支持使用“\ROOT\MicrosoftExchangeV2”运行WMI查询 因为我有scenerio来获取在特定服务器中找到的所有用户和组邮箱列表,并将其转换为csv文件 下面是我们计划在C中实现的方法#如何在C#中检测目标服务器中安装了哪个版本的exchange?,c#,exchange-server,C#,Exchange Server,有没有办法通过c#检测Exchange Server的哪个版本正在运行(2003、2007或2010) 我已经通过了考试。但是power shell 1.0不支持使用“\ROOT\MicrosoftExchangeV2”运行WMI查询 因为我有scenerio来获取在特定服务器中找到的所有用户和组邮箱列表,并将其转换为csv文件 下面是我们计划在C中实现的方法# 请提供建议并同时参考链接我可以在CN=Configuration、DC=domain、DC=localnaming上下文中使用Acti
请提供建议并同时参考链接我可以在CN=Configuration、DC=domain、DC=localnaming上下文中使用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#获取exchange版本,请与我们分享。其他方法是使用powershell命令获取 Get-ExchangeServer |格式列表名称、版本、AdminDisplayVersion此主题对您有帮助吗?
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();
}
}