最善の策は、おそらくWMIを介してWin32_Productにクエリを実行することです。WMI Code Creator v1.0を使用すると、適切なクエリを作成できます。サポートされているクエリ構文とManagementObjectSearcherクラスについては、 WQL(SQL for WMI)も参照してください。
このような何かがトリックを行う必要があります:
using System;
using System.Management;
using System.Windows.Forms;
namespace WMISample
{
public class MyWMIQuery
{
public static void Main()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_Product WHERE Name LIKE '%SQL%'");
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("Win32_Product instance");
Console.WriteLine("-----------------------------------");
Console.WriteLine("InstallDate: {0}", queryObj["InstallDate"]);
Console.WriteLine("InstallLocation: {0}", queryObj["InstallLocation"]);
Console.WriteLine("Name: {0}", queryObj["Name"]);
Console.WriteLine("SKUNumber: {0}", queryObj["SKUNumber"]);
Console.WriteLine("Vendor: {0}", queryObj["Vendor"]);
Console.WriteLine("Version: {0}", queryObj["Version"]);
}
}
catch (ManagementException e)
{
MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
}
}
}
}
- アップグレードツールはアップグレードアドバイザーで終了します
- デバッグシンボルは、特定のアプリケーションによってオンデマンドでシンボルサーバーから取得され、Win32_Productsには表示されません。
- レプリケーションサポートは、Win32_ProductsへのプレーンなWMIクエリでは検出できないようです。
- BooksOnlineはBooksOnlineで終わります(英語)
- 開発ツールはBIDevelopmentStudioで終わります
インストールされている機能については、SQL Serverセットアップ検出レポートを実行することで確認できます(管理者権限が必要です)。
- スタートメニューに移動します
- すべてのプログラムをクリック
- MicrosoftSQLServerをクリックします
- [構成ツール]をクリックします
- [SQLServerインストールセンター]をクリックします
- [ツール]セクションのリンクをクリックします
- [インストールされたSQLServer機能検出レポート]をクリックします
( SQL Server 2008 R2の場合setup.exe /ACTION=RUNDISCOVERY /Q
から)を実行して、コマンドラインからレポートを作成することもできます。C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\SQLServer2008R2
レポートファイルは通常、にありますC:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\YYYYMMDD_HHmmSS
。ここで、YYYYMMDD_HHmmSSは、レポートが実行された日時です。SqlDiscoveryReport.xmlは、おそらくプログラムで使用するのに最も役立つものです。これらの場所は、初期セットアップ時にユーザーが選択したインストール場所とSQLServerのバージョンによって多少異なる場合があることに注意してください。