2012-03-01 110 views
0

我希望能夠查詢安裝在我們用戶服務器上的Exchange版本。我明白這可以使用WMI完成,但我很難用Google找到一個簡單的解釋。有什麼建議?如何使用WMI查找使用C#安裝的Exchange版本?

+3

爲什麼在用戶的計算機上運行電子郵件服務器?它是一臺服務器嗎? – 2012-03-01 22:25:46

+0

是的 - 這是出於診斷目的。 – Darkenor 2012-03-02 15:47:24

回答

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",並檢索Version財產。我無法訪問Exchange的安裝知道這些值實際上是什麼。更好的辦法是,如果你能確定ProductID屬性是用於Exchange的,那麼你可以根據這個屬性進行過濾。

請注意,並非所有安裝的應用程序都由Win32_Product返回(它似乎主要是Microsoft應用程序以及具有Windows Installer安裝程序的應用程序)。所以,我知道Exchange並不是這些應用程序之一!

0

我也有同樣的問題:交換(服務器)在用戶的計算機上? btw,here你可以找到一個很好的示例源,並解釋如何使用WMI在(任何)windows pc上檢索已安裝應用程序的列表。

這個背後的想法是使用「\ root \ cimv2」中的「SELECT * FROM Win32_Product」查詢來選擇應用程序列表。

每個應用程序項目(已實現的類別)都有自己的「識別號碼」,「說明」,「版本」等,這些信息可幫助您找到答案。

相關問題