[英]How can I use WMI to find out the installed Exchange Version using C#?
我希望能够查询安装在我们用户服务器上的Exchange版本。 我知道可以使用WMI来完成此操作,但是使用Google很难找到一个简单的解释。 有什么建议吗?
这应该使您开始:
string condition = "Vendor LIKE 'Microsoft%' AND Name = 'Exchange'";
string[] selectedProperties = new string[] { "Version" };
SelectQuery query = new SelectQuery("Win32_Product", condition, selectedProperties);
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query))
using (ManagementObjectCollection products = searcher.Get())
foreach (ManagementObject product in products)
{
string version = (string) product["Version"];
// Do something with version...
}
这将搜索Win32_Product
类的实例,其中Vendor
属性以"Microsoft"
开头,并且Name
属性为"Exchange"
,并检索Version
属性。 我没有安装Exchange的权限,无法知道这些值实际上是什么。 更好的是,如果您可以确定Exchange的ProductID
属性是什么,以便可以仅基于此进行过滤。
请注意,并非所有已安装的应用程序都由Win32_Product
返回(它似乎主要是Microsoft应用程序以及带有Windows Installer安装程序的应用程序)。 因此,就我所知,Exchange不是这些应用程序之一!
我也有同样的问题:用户计算机上的Exchange(服务器)? 顺便说一句, 在这里您可以找到一个很好的示例源,其中包含有关如何使用WMI检索(任何)Windows PC上已安装应用程序列表的说明。
其背后的思想是使用“ \\ root \\ cimv2”中的“ SELECT * FROM Win32_Product”查询来选择应用程序列表。
每个应用程序项(实现的类)都有自己的'IdentifyingNumber','Description','Version'等,可帮助您找到答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.