【解決方法】ハードディスクのシリアルモデル名と番号を取得する方法


ハードディスクのモデル名とそのシリアル番号が必要です
クラス HardDrive のアセンブリを追加できませんでした (コードの行 A を参照)
System.Management への参照を追加しました

私が試したこと:

private string GetModelAndSerialNumberOfHardDisk()
     {
         string HradDiskModelName, HradDiskSerialNumber;
         ManagementObjectSearcher searcher = null;
         searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");

         //DriveInfo[] allDrives = DriveInfo.GetDrives();

         foreach (ManagementObject wmi_HD in searcher.Get())
         {
             HardDrive hd = new HardDrive();//<==== Line A Error
             HradDiskModelName = hd.Caption =
             wmi_HD["Caption"].ToString();
             HradDiskSerialNumber = (hd.SerialNo =
             wmi_HD.GetPropertyValue("SerialNumber").ToString());
             return (HradDiskModelName + "#"+ HradDiskSerialNumber);
         }
         return ("-1");
    }

解決策 1

HardDrive は、独自に提供する必要があるクラスです。
標準アセンブリには含まれていません。
ここを見てください: C#でハードドライブのシリアル番号を取得する方法[^]

解決策 2

以下は、選択された情報を返す必要があります。 必要な WMI クラスにアクセスするには、昇格されたアクセス許可でアプリケーションを実行する必要がある場合があります。

using System.Management;

public static void GetModelAndSerialNumberOfHardDisk()
{
    ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
    foreach (ManagementObject drive in searcher.Get())
    {
        string modelName = (string)drive["Model"];
        string serialNumber = (string)drive["SerialNumber"];
        Console.WriteLine($"Model Name: {modelName}");
        Console.WriteLine($"Serial Number: {serialNumber}");
    }
}

GetModelAndSerialNumberOfHardDisk() メソッドを呼び出すだけです。

コメント

タイトルとURLをコピーしました