Win32_DiskDrive签名属性

时间:2009-08-28 11:35:27

标签: wmi

有人知道Win32_DiskDrive WMI类的Signature属性是什么吗? 它是唯一的还是用户可以像磁盘卷序列号一样更改它?

感谢。

4 个答案:

答案 0 :(得分:3)

“签名”属性是随Windows XP引入的,用于用作共享群集磁盘的磁盘。根据我的理解,它是在磁盘第一次连接到Windows系统时创建的,即使磁盘通过另一个控制器连接(或者在集群场景中,甚至通过另一台计算机连接)也不会更改。

有关详细说明,请参阅MSDN: 创建物理磁盘资源 http://msdn.microsoft.com/en-us/library/aa369328(VS.85).aspx

答案 1 :(得分:1)

我可以通过提供有关“Win32_DiskDrive WMI类”的一些重要细节来帮助您。

将以下代码复制到您的c#项目中。

    public static string HardDiskID()
    {
        ManagementClass partionsClass = new ManagementClass("Win32_DiskDrive");
        ManagementObjectCollection partions = partionsClass.GetInstances();

        string hdd = string.Empty;

        foreach (ManagementObject partion in partions)
        {
            hdd = Convert.ToString(partion["SerialNumber"]);

            if (hdd != string.Empty)
                return hdd;
        }

        return hdd;
    }

注意 - 上面代码的“SerialNumber”字符串可以替换为以下任何硬盘属性。

  uint16   Availability;
  uint32   BytesPerSector;
  uint16   Capabilities[];
  string   CapabilityDescriptions[];
  string   Caption;
  string   CompressionMethod;
  uint32   ConfigManagerErrorCode;
  boolean  ConfigManagerUserConfig;
  string   CreationClassName;
  uint64   DefaultBlockSize;
  string   Description;
  string   DeviceID;
  boolean  ErrorCleared;
  string   ErrorDescription;
  string   ErrorMethodology;
  string   FirmwareRevision;
  uint32   Index;
  datetime InstallDate;
  string   InterfaceType;
  uint32   LastErrorCode;
  string   Manufacturer;
  uint64   MaxBlockSize;
  uint64   MaxMediaSize;
  boolean  MediaLoaded;
  string   MediaType;
  uint64   MinBlockSize;
  string   Model;
  string   Name;
  boolean  NeedsCleaning;
  uint32   NumberOfMediaSupported;
  uint32   Partitions;
  string   PNPDeviceID;
  uint16   PowerManagementCapabilities[];
  boolean  PowerManagementSupported;
  uint32   SCSIBus;
  uint16   SCSILogicalUnit;
  uint16   SCSIPort;
  uint16   SCSITargetId;
  uint32   SectorsPerTrack;
  string   SerialNumber;
  uint32   Signature;
  uint64   Size;
  string   Status;
  uint16   StatusInfo;
  string   SystemCreationClassName;
  string   SystemName;
  uint64   TotalCylinders;
  uint32   TotalHeads;
  uint64   TotalSectors;
  uint64   TotalTracks;
  uint32   TracksPerCylinder

答案 2 :(得分:0)

我将HDD带到另一台机器并且Signature和PNPDeviceID已更改。所以我认为OS会生成这个签名。

答案 3 :(得分:0)

我认为两条评论对于遵循这条道路的人来说非常重要。