【发布时间】:2010-11-23 16:55:03
【问题描述】:
有人知道 Win32_DiskDrive WMI 类的 Signature 属性是什么吗? 它是唯一的还是用户可以像磁盘卷序列号一样更改它?
谢谢。
【问题讨论】:
标签: wmi
有人知道 Win32_DiskDrive WMI 类的 Signature 属性是什么吗? 它是唯一的还是用户可以像磁盘卷序列号一样更改它?
谢谢。
【问题讨论】:
标签: wmi
“签名”属性是随 Windows XP 引入的,用于用作共享群集磁盘的磁盘。据我了解,它是在磁盘第一次连接到 Windows 系统时创建的,即使磁盘通过另一个控制器连接(或在集群场景中甚至通过另一台计算机)也不会更改。
详细解释见 MSDN: 创建物理磁盘资源 http://msdn.microsoft.com/en-us/library/aa369328(VS.85).aspx
【讨论】:
我将 HDD 带到另一台机器上,并且 Signature 和 PNPDeviceID 已更改。所以我认为操作系统会生成这个签名。
【讨论】:
我可以通过提供有关“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
【讨论】:
我认为对于任何走这条路的人来说,两个 cmets 都非常重要。
【讨论】: