Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
prog:lazarus:cas:disks:disk_uniq_id [23/05/2023 12:28] thierry [Identifier de manière unique un disque dur] |
prog:lazarus:cas:disks:disk_uniq_id [23/05/2023 14:58] (Version actuelle) thierry [Préambule] |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== Identifier de manière unique un disque dur ====== | ====== Identifier de manière unique un disque dur ====== | ||
| <note>Pour l'instant, sur cette page, ce ne sont que des pistes</note> | <note>Pour l'instant, sur cette page, ce ne sont que des pistes</note> | ||
| + | ===== Préambule ===== | ||
| + | Le but est d'identifié de manière unique un disque dur physique, quelque soit son contenu ou formatage et quelque soit la machine sur laquelle il est connecté. | ||
| + | |||
| + | J'entends par disque dur, un DiskDrive, un disque SATA, SSD une clé USB.\\ | ||
| + | Tout ce qui peut etre accessible via un ''\\PHYSICALDRIVEx\'' | ||
| + | ===== Approche WMI ===== | ||
| + | En WMI il y a les classes ''Win32_DiskDrive'', ''MSFT_PhysicalDisk'' et ''MSFT_Disk'' (et peut etre d'autres) qui décrivent les disks | ||
| + | ==== Win32_DiskDrive ==== | ||
| + | |||
| + | Les propriétées interessantes sont : | ||
| + | * ''Caption'' et ''Model'' = ST2000DM001-1ER164 (et commun avec d'autres modèles) | ||
| + | * ''SerialNumber'' = W4Z3A36Q ( Certains disque du meme modéle ont le méme SerialNumber, j'ai vérifié cela sur certaines clé USB ) | ||
| + | * ''Signature'' = 1431655765 (Est-ce que la signature du disque est unique tout au long de la vie du disque ???) | ||
| + | |||
| + | <codedoc> | ||
| + | Classe WMI Win32_DiskDrive | ||
| + | <codedoc toggle> | ||
| + | { | ||
| + | "__PATH" : "\\\\PC-THIERRY\\root\\CIMV2:Win32_DiskDrive.DeviceID=\"\\\\\\\\.\\\\PHYSICALDRIVE0\"", | ||
| + | "__NAMESPACE" : "root\\CIMV2", | ||
| + | "__SERVER" : "PC-THIERRY", | ||
| + | "__DERIVATION" : [ | ||
| + | "CIM_DiskDrive" | ||
| + | ], | ||
| + | "__PROPERTY_COUNT" : "51", | ||
| + | "__RELPATH" : "Win32_DiskDrive.DeviceID=\"\\\\\\\\.\\\\PHYSICALDRIVE0\"", | ||
| + | "__DYNASTY" : "CIM_ManagedSystemElement", | ||
| + | "__SUPERCLASS" : "CIM_DiskDrive", | ||
| + | "__CLASS" : "Win32_DiskDrive", | ||
| + | "__GENUS" : "2", | ||
| + | "BytesPerSector" : "512", | ||
| + | "Capabilities" : [ | ||
| + | "3" | ||
| + | ], | ||
| + | "CapabilityDescriptions" : [ | ||
| + | "Random Access" | ||
| + | ], | ||
| + | "Caption" : "ST2000DM001-1ER164", | ||
| + | "ConfigManagerErrorCode" : "0", | ||
| + | "ConfigManagerUserConfig" : "False", | ||
| + | "CreationClassName" : "Win32_DiskDrive", | ||
| + | "Description" : "Lecteur de disque", | ||
| + | "DeviceID" : "\\\\.\\PHYSICALDRIVE0", | ||
| + | "FirmwareRevision" : "CC61", | ||
| + | "Index" : "0", | ||
| + | "InterfaceType" : "IDE", | ||
| + | "Manufacturer" : "(Lecteurs de disque standard)", | ||
| + | "MediaLoaded" : "True", | ||
| + | "MediaType" : "Fixed hard disk media", | ||
| + | "Model" : "ST2000DM001-1ER164", | ||
| + | "Name" : "\\\\.\\PHYSICALDRIVE0", | ||
| + | "Partitions" : "1", | ||
| + | "PNPDeviceID" : "SCSI\\DISK&VEN_ST2000DM&PROD_001-1ER164\\4&61B3D44&0&000000", | ||
| + | "SCSIBus" : "0", | ||
| + | "SCSILogicalUnit" : "0", | ||
| + | "SCSIPort" : "0", | ||
| + | "SCSITargetId" : "0", | ||
| + | "SectorsPerTrack" : "63", | ||
| + | "SerialNumber" : " W4Z3A36Q", | ||
| + | "Signature" : "1431655765", | ||
| + | "Size" : "2000396321280", | ||
| + | "Status" : "OK", | ||
| + | "SystemCreationClassName" : "Win32_ComputerSystem", | ||
| + | "SystemName" : "PC-THIERRY", | ||
| + | "TotalCylinders" : "243201", | ||
| + | "TotalHeads" : "255", | ||
| + | "TotalSectors" : "3907024065", | ||
| + | "TotalTracks" : "62016255", | ||
| + | "TracksPerCylinder" : "255" | ||
| + | }, | ||
| + | </codedoc> | ||
| + | </codedoc> | ||
| + | ==== MSFT_PhysicalDisk ==== | ||
| + | Les propriétées interessantes sont : | ||
| + | * "FriendlyName" : "ST2000DM001-1ER164", | ||
| + | * "Model" : "ST2000DM001-1ER164", | ||
| + | * "SerialNumber" : "W4Z3A36Q", | ||
| + | * "Size" : "2000398934016", | ||
| + | * "UniqueId" : "5000C5008A988D69", | ||
| + | * "UniqueIdFormat" : "3", | ||
| + | |||
| + | === UniqueId === | ||
| + | Certains disque retournent des UniqueId sous cette forme : | ||
| + | <code> | ||
| + | "UniqueId" : "USBSTOR\\DISK&VEN_KINGSTON&PROD_DATATRAVELER_3.0&REV_\\60A44C3FAFD5F37129401064&0:PC-THIERRY", | ||
| + | "UniqueIdFormat" : "0" | ||
| + | |||
| + | </code> | ||
| + | On voit donc que certains UniqueId sont lié au PC (''PC-THIERRY''). | ||
| + | |||
| + | Est-ce utilisable ??? | ||
| + | |||
| + | |||
| + | <codedoc> | ||
| + | Classe WMI : MSFT_PhysicalDisk | ||
| + | <codedoc toggle> | ||
| + | { | ||
| + | "__PATH" : "\\\\PC-THIERRY\\root\\Microsoft\\Windows\\Storage:MSFT_PhysicalDisk.ObjectId=\"{1}\\\\\\\\PC-THIERRY\\\\root/Microsoft/Windows/Storage/Providers_v2\\\\SPACES_PhysicalDisk.ObjectId=\\\"{6e6eee87-74ee-11e9-8b27-806e6f6e6963}:PD:{fd43b0d7-925e-cab8-0064-a31028c2c230}\\\"\"", | ||
| + | "__NAMESPACE" : "root\\Microsoft\\Windows\\Storage", | ||
| + | "__SERVER" : "PC-THIERRY", | ||
| + | "__DERIVATION" : [ | ||
| + | "MSFT_StorageFaultDomain" | ||
| + | ], | ||
| + | "__PROPERTY_COUNT" : "39", | ||
| + | "__RELPATH" : "MSFT_PhysicalDisk.ObjectId=\"{1}\\\\\\\\PC-THIERRY\\\\root/Microsoft/Windows/Storage/Providers_v2\\\\SPACES_PhysicalDisk.ObjectId=\\\"{6e6eee87-74ee-11e9-8b27-806e6f6e6963}:PD:{fd43b0d7-925e-cab8-0064-a31028c2c230}\\\"\"", | ||
| + | "__DYNASTY" : "MSFT_StorageObject", | ||
| + | "__SUPERCLASS" : "MSFT_StorageFaultDomain", | ||
| + | "__CLASS" : "MSFT_PhysicalDisk", | ||
| + | "__GENUS" : "2", | ||
| + | "AllocatedSize" : "2000398934016", | ||
| + | "BusType" : "11", | ||
| + | "CannotPoolReason" : [ | ||
| + | "7" | ||
| + | ], | ||
| + | "CanPool" : "False", | ||
| + | "DeviceId" : "0", | ||
| + | "FirmwareVersion" : "CC61", | ||
| + | "FriendlyName" : "ST2000DM001-1ER164", | ||
| + | "HealthStatus" : "0", | ||
| + | "IsPartial" : "True", | ||
| + | "LogicalSectorSize" : "512", | ||
| + | "MediaType" : "3", | ||
| + | "Model" : "ST2000DM001-1ER164", | ||
| + | "ObjectId" : "{1}\\\\PC-THIERRY\\root/Microsoft/Windows/Storage/Providers_v2\\SPACES_PhysicalDisk.ObjectId=\"{6e6eee87-74ee-11e9-8b27-806e6f6e6963}:PD:{fd43b0d7-925e-cab8-0064-a31028c2c230}\"", | ||
| + | "OperationalStatus" : [ | ||
| + | "2" | ||
| + | ], | ||
| + | "PhysicalLocation" : "Integrated : Bus 0 : Device 23 : Function 0 : Adapter 0 : Port 0", | ||
| + | "PhysicalSectorSize" : "4096", | ||
| + | "SerialNumber" : "W4Z3A36Q", | ||
| + | "Size" : "2000398934016", | ||
| + | "SpindleSpeed" : "-1", | ||
| + | "SupportedUsages" : [ | ||
| + | "1" | ||
| + | ], | ||
| + | "UniqueId" : "5000C5008A988D69", | ||
| + | "UniqueIdFormat" : "3", | ||
| + | "Usage" : "1", | ||
| + | "VirtualDiskFootprint" : "0" | ||
| + | }, | ||
| + | </codedoc> | ||
| + | </codedoc> | ||
| + | ==== MSFT_Disk ==== | ||
| + | Les propriétés intéressantes sont : | ||
| + | * "FriendlyName" : "ST2000DM001-1ER164", | ||
| + | * "Model" : "ST2000DM001-1ER164", | ||
| + | * "SerialNumber" : " W4Z3A36Q", | ||
| + | * "Signature" : "1431655765", | ||
| + | * "Size" : "2000398934016", | ||
| + | * "UniqueId" : "5000C5008A988D69", | ||
| + | * "UniqueIdFormat" : "3" | ||
| + | |||
| + | |||
| + | <codedoc> | ||
| + | Classe WMI : MSFT_Disk | ||
| + | <codedoc toggle> | ||
| + | { | ||
| + | "__PATH" : "\\\\PC-THIERRY\\root\\Microsoft\\Windows\\Storage:MSFT_Disk.ObjectId=\"{1}\\\\\\\\PC-THIERRY\\\\root/Microsoft/Windows/Storage/Providers_v2\\\\WSP_Disk.ObjectId=\\\"{6e6eee87-74ee-11e9-8b27-806e6f6e6963}:DI:\\\\\\\\?\\\\scsi#disk&ven_st2000dm&prod_001-1er164#4&61b3d44&0&000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\\\"\"", | ||
| + | "__NAMESPACE" : "root\\Microsoft\\Windows\\Storage", | ||
| + | "__SERVER" : "PC-THIERRY", | ||
| + | "__DERIVATION" : [ | ||
| + | "MSFT_StorageObject" | ||
| + | ], | ||
| + | "__PROPERTY_COUNT" : "38", | ||
| + | "__RELPATH" : "MSFT_Disk.ObjectId=\"{1}\\\\\\\\PC-THIERRY\\\\root/Microsoft/Windows/Storage/Providers_v2\\\\WSP_Disk.ObjectId=\\\"{6e6eee87-74ee-11e9-8b27-806e6f6e6963}:DI:\\\\\\\\?\\\\scsi#disk&ven_st2000dm&prod_001-1er164#4&61b3d44&0&000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\\\"\"", | ||
| + | "__DYNASTY" : "MSFT_StorageObject", | ||
| + | "__SUPERCLASS" : "MSFT_StorageObject", | ||
| + | "__CLASS" : "MSFT_Disk", | ||
| + | "__GENUS" : "2", | ||
| + | "AllocatedSize" : "2000398934016", | ||
| + | "BootFromDisk" : "False", | ||
| + | "BusType" : "11", | ||
| + | "FirmwareVersion" : "CC61", | ||
| + | "FriendlyName" : "ST2000DM001-1ER164", | ||
| + | "HealthStatus" : "0", | ||
| + | "IsBoot" : "False", | ||
| + | "IsClustered" : "False", | ||
| + | "IsHighlyAvailable" : "False", | ||
| + | "IsOffline" : "False", | ||
| + | "IsReadOnly" : "False", | ||
| + | "IsScaleOut" : "False", | ||
| + | "IsSystem" : "False", | ||
| + | "LargestFreeExtent" : "0", | ||
| + | "Location" : "Integrated : Bus 0 : Device 23 : Function 0 : Adapter 0 : Port 0", | ||
| + | "LogicalSectorSize" : "512", | ||
| + | "Model" : "ST2000DM001-1ER164", | ||
| + | "Number" : "0", | ||
| + | "NumberOfPartitions" : "1", | ||
| + | "ObjectId" : "{1}\\\\PC-THIERRY\\root/Microsoft/Windows/Storage/Providers_v2\\WSP_Disk.ObjectId=\"{6e6eee87-74ee-11e9-8b27-806e6f6e6963}:DI:\\\\?\\scsi#disk&ven_st2000dm&prod_001-1er164#4&61b3d44&0&000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\"", | ||
| + | "OfflineReason" : "0", | ||
| + | "OperationalStatus" : [ | ||
| + | "53264" | ||
| + | ], | ||
| + | "PartitionStyle" : "1", | ||
| + | "Path" : "\\\\?\\scsi#disk&ven_st2000dm&prod_001-1er164#4&61b3d44&0&000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}", | ||
| + | "PhysicalSectorSize" : "4096", | ||
| + | "ProvisioningType" : "2", | ||
| + | "SerialNumber" : " W4Z3A36Q", | ||
| + | "Signature" : "1431655765", | ||
| + | "Size" : "2000398934016", | ||
| + | "UniqueId" : "5000C5008A988D69", | ||
| + | "UniqueIdFormat" : "3" | ||
| + | } | ||
| + | </codedoc> | ||
| + | </codedoc> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| ===== STORAGE_DEVICE_UNIQUE_IDENTIFIER ===== | ===== STORAGE_DEVICE_UNIQUE_IDENTIFIER ===== | ||
| source : [[https://learn.microsoft.com/fr-fr/windows-hardware/drivers/ddi/storduid/ns-storduid-_storage_device_unique_identifier]] | source : [[https://learn.microsoft.com/fr-fr/windows-hardware/drivers/ddi/storduid/ns-storduid-_storage_device_unique_identifier]] | ||