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: