WMIのWin32_OperatingSystemクラスを使用すれば、OSに関する様々な情報を取得できます。
WMIはWindows2000以上のOSで使用できます。(それ以外のOSでもインストールすれば使用できます。こちらからダウンロードできるようです。)
下の例ではSystem.Management.dllを参照設定に追加する必要があります。
Dim mc As New System.Management.ManagementClass("Win32_OperatingSystem") Dim moc As System.Management.ManagementObjectCollection = mc.GetInstances() Dim mo As System.Management.ManagementObject For Each mo In moc 'OSの名前 Console.WriteLine("Name:{0}", mo("Name")) 'OSの簡単な説明 Console.WriteLine("Caption:{0}", mo("Caption")) 'OSの説明(コンピュータの説明) Console.WriteLine("Description:{0}", mo("Description")) 'OSバージョン Console.WriteLine("Version:{0}", mo("Version")) 'OSビルド番号 Console.WriteLine("BuildNumber:{0}", mo("BuildNumber")) 'OSの製造者 Console.WriteLine("Manufacturer:{0}", mo("Manufacturer")) 'OSの言語ID Console.WriteLine("Locale:{0}", mo("Locale")) 'OSの言語 Console.WriteLine("OSLanguage:{0}", mo("OSLanguage")) 'シリアルナンバー Console.WriteLine("SerialNumber:{0}", mo("SerialNumber")) 'インストールされた日時 Console.WriteLine("InstallDate:{0}", mo("InstallDate")) '最後にブートされた日時 Console.WriteLine("LastBootUpTime:{0}", mo("LastBootUpTime")) 'ウィンドウズディレクトリ Console.WriteLine("WindowsDirectory:{0}", mo("WindowsDirectory")) 'OSがインストールされている物理ディスクパーティション Console.WriteLine("SystemDevice:{0}", mo("SystemDevice")) 'システムドライブ Console.WriteLine("SystemDrive:{0}", mo("SystemDrive")) 'Bootするディスクドライブ Console.WriteLine("BootDevice:{0}", mo("BootDevice")) 'Windows Plus!のID Console.WriteLine("PlusProductID:{0}", mo("PlusProductID")) 'Windows Plus!のバージョン Console.WriteLine("PlusVersionNumber:{0}", mo("PlusVersionNumber")) mo.Dispose() Next mo moc.Dispose() mc.Dispose()
System.Management.ManagementClass mc =
new System.Management.ManagementClass("Win32_OperatingSystem");
System.Management.ManagementObjectCollection moc = mc.GetInstances();
foreach (System.Management.ManagementObject mo in moc)
{
//OSの名前
Console.WriteLine("Name:{0}", mo["Name"]);
//OSの簡単な説明
Console.WriteLine("Caption:{0}", mo["Caption"]);
//OSの説明(コンピュータの説明)
Console.WriteLine("Description:{0}", mo["Description"]);
//OSバージョン
Console.WriteLine("Version:{0}", mo["Version"]);
//OSビルド番号
Console.WriteLine("BuildNumber:{0}", mo["BuildNumber"]);
//OSの製造者
Console.WriteLine("Manufacturer:{0}", mo["Manufacturer"]);
//OSの言語ID
Console.WriteLine("Locale:{0}", mo["Locale"]);
//OSの言語
Console.WriteLine("OSLanguage:{0}", mo["OSLanguage"]);
//シリアルナンバー
Console.WriteLine("SerialNumber:{0}", mo["SerialNumber"]);
//インストールされた日時
Console.WriteLine("InstallDate:{0}", mo["InstallDate"]);
//最後にブートされた日時
Console.WriteLine("LastBootUpTime:{0}", mo["LastBootUpTime"]);
//ウィンドウズディレクトリ
Console.WriteLine("WindowsDirectory:{0}", mo["WindowsDirectory"]);
//OSがインストールされている物理ディスクパーティション
Console.WriteLine("SystemDevice:{0}", mo["SystemDevice"]);
//システムドライブ
Console.WriteLine("SystemDrive:{0}", mo["SystemDrive"]);
//Bootするディスクドライブ
Console.WriteLine("BootDevice:{0}", mo["BootDevice"]);
//Windows Plus!のID
Console.WriteLine("PlusProductID:{0}", mo["PlusProductID"]);
//Windows Plus!のバージョン
Console.WriteLine("PlusVersionNumber:{0}", mo["PlusVersionNumber"]);
mo.Dispose();
}
moc.Dispose();
mc.Dispose();
Microsoft Windows XP Professionalでの出力例は、次のようになります。
Name:Microsoft Windows XP Professional|C:\WINDOWS|\Device\Harddisk0\Partition1 Caption:Microsoft Windows XP Professional Description:コンピュータの説明 Version:5.1.2600 BuildNumber:2600 Manufacturer:Microsoft Corporation Locale:0411 OSLanguage:1041 SerialNumber:00000-000-0000000-00000 InstallDate:20070101123050.000000+540 LastBootUpTime:20070201123050.375000+540 WindowsDirectory:C:\WINDOWS SystemDevice:\Device\HarddiskVolume1 SystemDrive:C: BootDevice:\Device\HarddiskVolume1 PlusProductID: PlusVersionNumber: