我希望能够查询用户服务器上安装的Exchange版本。我知道这可以使用WMI完成,但我很难找到使用Google的简单解释。有什么建议吗?
答案 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”等,可帮助您找到答案。