如何使用WMI使用C#查找已安装的Exchange版本?

时间:2012-03-01 22:18:21

标签: c# wmi

我希望能够查询用户服务器上安装的Exchange版本。我知道这可以使用WMI完成,但我很难找到使用Google的简单解释。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

这应该让你开始:

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 class Vendor属性以"Microsoft"开头且Name属性为"Exchange"的实例,并检索{{1}属性。我无权访问Exchange的安装,以了解这些值实际上是什么。如果你可以确定Exchange的Version属性是什么,那么你可以更好地根据它进行过滤。

请注意,并非所有已安装的应用程序都由ProductID返回(它似乎主要是Microsoft应用程序和Windows Installer安装程序)。所以,据我所知,Exchange不是这些应用程序之一!

答案 1 :(得分:0)

我也有同样的问题:用户计算机上的Exchange(服务器)? btw,here你可以找到一个很好的示例源,解释如何使用WMI检索(任何)windows pc上安装的应用程序列表。

这背后的想法是使用“\ root \ cimv2”中的“SELECT * FROM Win32_Product”查询来选择应用程序列表。

每个应用程序项目(已实现的类)都有自己的“IdentifyingNumber”,“Description”,“Version”等,可帮助您找到答案。