[C#] WMIを利用してOS情報取得する方法(OS名、バージョン、ServicePackなど)

inno
2015-05-19 13:20 2761 0

まず、参照に「System.Management」を追加してください。

 

WMIを利用してOS情報を取得する方法は下記のとおりです。

 

 

System.Management.ManagementClass objCS = new System.Management.ManagementClass("Win32_OperatingSystem");

System.Management.ManagementObjectCollection objCol = objCS.GetInstances();

 

foreach (System.Management.ManagementObject objMgmt in objCol)

{

    Console.WriteLine("-.OS名(Caption) : " + objMgmt["Caption"]);

    Console.WriteLine("-.OS名詳細(Name) : " + objMgmt["Name"]);

    Console.WriteLine("-.説明(Description) : " + objMgmt["Description"]);

    Console.WriteLine("-.Bit(OSArchitecture) : " + objMgmt["OSArchitecture"]);

    Console.WriteLine("-.ServicePack(ServicePackMajorVersion) : Sp" + objMgmt["ServicePackMajorVersion"]);

    Console.WriteLine("-.OSバージョン(Version) : " + objMgmt["Version"]);

    Console.WriteLine("-.OSビルド番号(BuildNumber) : " + objMgmt["BuildNumber"]);

    Console.WriteLine("-.OSの製造者(Manufacturer) : " + objMgmt["Manufacturer"]);

    Console.WriteLine("-.OS言語(Locale) : " + objMgmt["Locale"]);

    Console.WriteLine("-.OS言語番号(OSLanguage) : " + objMgmt["OSLanguage"]);

    Console.WriteLine("-.シリアル番号(SerialNumber) : " + objMgmt["SerialNumber"]);

    Console.WriteLine("-.OSインストール日時(InstallDate) : " + objMgmt["InstallDate"]);

    Console.WriteLine("-.最終Booting日時(LastBootUpTime) : " + objMgmt["LastBootUpTime"]);

    Console.WriteLine("-.Windows Directory(WindowsDirectory) : " + objMgmt["WindowsDirectory"]);

    Console.WriteLine("-.システムドライブ(SystemDrive) : " + objMgmt["SystemDrive"]);

    Console.WriteLine("-.OS System Device(SystemDevice) : " + objMgmt["SystemDevice"]);

    Console.WriteLine("-.OS Boot Device(BootDevice) : " + objMgmt["BootDevice"]);

    Console.WriteLine("-.PlusのID(PlusProductID) : " + objMgmt["PlusProductID"]);

    Console.WriteLine("-.Plusのバージョン(PlusVersionNumber) : " + objMgmt["PlusVersionNumber"]);

 

 

    objMgmt.Dispose();

}

 

objCol.Dispose();

objCS.Dispose();

 

 

もしくは、下記のように記述してもできます。

 

 

System.Management.ManagementObjectSearcher objCS = new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");

 

foreach (System.Management.ManagementObject objMgmt in objCS.Get())

{

    Console.WriteLine("-.OS名(Caption) : " + objMgmt["Caption"]);

    Console.WriteLine("-.OS名詳細(Name) : " + objMgmt["Name"]);

    Console.WriteLine("-.説明(Description) : " + objMgmt["Description"]);

    Console.WriteLine("-.Bit(OSArchitecture) : " + objMgmt["OSArchitecture"]);

    Console.WriteLine("-.ServicePack(ServicePackMajorVersion) : Sp" + objMgmt["ServicePackMajorVersion"]);                

    Console.WriteLine("-.OSバージョン(Version) : " + objMgmt["Version"]);

    Console.WriteLine("-.OSビルド番号(BuildNumber) : " + objMgmt["BuildNumber"]);

    Console.WriteLine("-.OSの製造者(Manufacturer) : " + objMgmt["Manufacturer"]);

    Console.WriteLine("-.OS言語(Locale) : " + objMgmt["Locale"]);

    Console.WriteLine("-.OS言語番号(OSLanguage) : " + objMgmt["OSLanguage"]);

    Console.WriteLine("-.シリアル番号(SerialNumber) : " + objMgmt["SerialNumber"]);

    Console.WriteLine("-.OSインストール日時(InstallDate) : " + objMgmt["InstallDate"]);

    Console.WriteLine("-.最終Booting日時(LastBootUpTime) : " + objMgmt["LastBootUpTime"]);

    Console.WriteLine("-.Windows Directory(WindowsDirectory) : " + objMgmt["WindowsDirectory"]);

    Console.WriteLine("-.システムドライブ(SystemDrive) : " + objMgmt["SystemDrive"]);

    Console.WriteLine("-.OS System Device(SystemDevice) : " + objMgmt["SystemDevice"]);

    Console.WriteLine("-.OS Boot Device(BootDevice) : " + objMgmt["BootDevice"]);

    Console.WriteLine("-.PlusのID(PlusProductID) : " + objMgmt["PlusProductID"]);

    Console.WriteLine("-.Plusのバージョン(PlusVersionNumber) : " + objMgmt["PlusVersionNumber"]);

}


コメント