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

本文关键字:安装 Exchange 版本 何使用 WMI 查找 | 更新日期: 2023-09-27 18:26:27

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

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

这应该会让你开始:

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检索(任何)windowspc上安装的应用程序列表。

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

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