【问题标题】:Win32_DiskDrive Signature propertyWin32_DiskDrive 签名属性
【发布时间】:2010-11-23 16:55:03
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: wmi


    【解决方案1】:

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

    详细解释见 MSDN: 创建物理磁盘资源 http://msdn.microsoft.com/en-us/library/aa369328(VS.85).aspx

    【讨论】:

    • 如果用户重新安装操作系统怎么办?操作系统是否生成相同的签名?
    • 据我了解,如果之前生成过签名,则再也不会被触及。因为集群磁盘必须在访问同一磁盘的所有机器上保持相同的身份,即使在重新安装一个集群节点的情况下也是如此。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      我可以通过提供有关“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
      

      【讨论】:

      • Win32_DiskDriveSerialNumber 吗?
      【解决方案4】:

      我认为对于任何走这条路的人来说,两个 cmets 都非常重要。

      【讨论】:

        猜你喜欢
        • 2018-07-10
        • 2013-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多