一般电脑包含多个磁盘,这里只获取第一个磁盘,
如果要获取多个,只需要遍历获取即可.
先通过 ManagementClass 类,获取Win32_DiskDrive 信息,再通过 ManagementObject 类遍历,获取 Model 值
        /// <summary>
        /// 获取磁盘序列号
        /// </summary>
        public string GetDiskSerialNumber()
        {
            //这种模式在插入一个U盘后可能会有不同的结果,如插入我的手机时
            string HDid = "";
            ManagementClass mc = new ManagementClass("Win32_DiskDrive");
            ManagementObjectCollection moc = mc.GetInstances();
            foreach (ManagementObject mo in moc)
            {
                HDid = (string)mo.Properties["Model"].Value;//SerialNumber
                break;//这名话解决有多个物理盘时产生的问题,只取第一个物理硬盘
            }
            return HDid;
        }
运行结果:

 











