如何使用WMI查找使用C#安装的Exchange版本
本文关键字:安装 Exchange 版本 何使用 WMI 查找 | 更新日期: 2023-09-27 18:26:27
我希望能够查询安装在用户服务器上的Exchange版本。我知道使用WMI可以做到这一点,但我很难用谷歌找到一个简单的解释。有什么建议吗?
这应该会让你开始:
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"等,可以帮助您找到答案。