簡體   English   中英

如何使用WMI通過C#找出已安裝的Exchange版本?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM