2012-03-01 1 views
0

ユーザーのサーバーにインストールされているExchangeのバージョンを照会できるようにしたいと考えています。これはWMIを使用して行うことができると私は理解していますが、Googleを使用して簡単な説明を見つけるのは難しいです。何かアドバイス?WMIを使用してC#を使用してインストール済みのExchangeバージョンを調べるにはどうすればよいですか?

+3

ユーザのコンピュータに電子メールサーバが実行されているのはなぜですか?それはサーバーですか? –

+0

はい - 診断目的です。 – Darkenor

答えて

1

これはあなたが始める必要があります:Vendorプロパティは"Microsoft"で始まり、Nameプロパティが"Exchange"で、Versionプロパティを取得Win32_Product classのインスタンスを検索し

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... 
    } 

を。これらの値が実際にどのようなものになるかを知るためにExchangeのインストールにアクセスすることはできません。 ProductIDのプロパティがExchangeのために何であるかを判断できる場合は、Exchangeだけに基づいてフィルタリングすることができます。

インストールされているアプリケーションのすべてがWin32_Productで返されるわけではありません。ほとんどの場合、MicrosoftアプリケーションとWindowsインストーラを使用しているようです。ですから、Exchangeはこれらのアプリケーションの1つではありません。

0

私も同じ質問があります:ユーザーのコンピュータのExchange(サーバー)ですか? btw、here WMIを使用して、(任意の)Windows PC上にインストールされているアプリケーションのリストを取得する方法の説明とともに、良いサンプルソースを見つけることができます。

これの背後にあるアイデアは、 "\ root \ cimv2"の "SELECT * FROM Win32_Product"クエリを使用してアプリケーションのリストを選択することです。

各アプリケーションアイテム(実装されたクラス)には、あなたの答えを見つけるのに役立つ独自の 'IdentifyingNumber'、 'Description'、 'Version'などがあります。

関連する問題