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 | ||
windows:wmi:disks:wmi_and_disks [27/04/2023 17:33] thierry [Win32_Volume] |
windows:wmi:disks:wmi_and_disks [09/06/2023 10:29] (Version actuelle) thierry ↷ Page déplacée de windows:wmi:wmi_and_disks à windows:wmi:disks:wmi_and_disks |
||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
Les classes WMI suivantes sont couramment utilisées pour gérer les disques durs et les partitions: | Les classes WMI suivantes sont couramment utilisées pour gérer les disques durs et les partitions: | ||
- | [[windows:wmi:win32_diskdrive|Win32_DiskDrive]]: cette classe représente un disque dur physique installé sur le système et fournit des informations telles que le nom, le fabricant, le numéro de série, la taille, le modèle, l'interface, etc. | + | [[windows:wmi:disks:win32_diskdrive|Win32_DiskDrive]]: cette classe représente un disque dur physique installé sur le système et fournit des informations telles que le nom, le fabricant, le numéro de série, la taille, le modèle, l'interface, etc. |
- | [[windows:wmi:win32_logicaldisk|Win32_LogicalDisk]]: cette classe représente une partition ou un volume logique d'un disque dur et fournit des informations telles que le nom de lecteur, la lettre de lecteur, le type de système de fichiers, la taille, l'espace libre, etc. | + | [[windows:wmi:disks:win32_logicaldisk|Win32_LogicalDisk]]: cette classe représente une partition ou un volume logique d'un disque dur et fournit des informations telles que le nom de lecteur, la lettre de lecteur, le type de système de fichiers, la taille, l'espace libre, etc. |
- | [[windows:wmi:win32_diskpartition|Win32_DiskPartition]]: cette classe représente une partition physique sur un disque dur et fournit des informations telles que l'index de partition, la taille de la partition, l'offset de partition, le type de partition, etc. | + | [[windows:wmi:disks:win32_diskpartition|Win32_DiskPartition]]: cette classe représente une partition physique sur un disque dur et fournit des informations telles que l'index de partition, la taille de la partition, l'offset de partition, le type de partition, etc. |
- | [[windows:wmi:win32_Volume|Win32_Volume]]: cette classe représente un volume sur un disque dur et fournit des informations telles que le nom du volume, la lettre de lecteur, le type de système de fichiers, la taille, l'espace libre, etc. | + | [[windows:wmi:disks:win32_volume|Win32_Volume]]: cette classe représente un volume sur un disque dur et fournit des informations telles que le nom du volume, la lettre de lecteur, le type de système de fichiers, la taille, l'espace libre, etc. |
Ces classes peuvent être utilisées pour obtenir des informations sur les disques durs et les partitions, les gérer, les formater, les redimensionner, les supprimer, etc. | Ces classes peuvent être utilisées pour obtenir des informations sur les disques durs et les partitions, les gérer, les formater, les redimensionner, les supprimer, etc. | ||
+ | |||
+ | ===== Naviguer a travers les classes ===== | ||
+ | ==== Volume ==== | ||
+ | |||
+ | Je pense que dans un premier temps il faut lister les ''Win32_Volume''.\\ | ||
+ | La liste des ''Win32_Volume'' est plus exhaustive que celle des ''Win32_LogicalDisk'' | ||
+ | |||
+ | ==== Disque Logique ==== | ||
+ | On pourra lier les ''Win32_LogicalDisk'' avec les ''Win32_Volume'' via la propriété ''DriveLetter'' pour la mettre en correspondance avec la Propriété ''DeviceID'' du ''Win32_LogicalDisk'' | ||
+ | |||
+ | ''Win32_Volume.DriveLetter'' <-> ''Win32_LogicalDisk.DeviceID'' | ||
+ | |||
+ | Ou bien | ||
+ | |||
+ | ''Win32_Volume.SerialNumber'' <-> ''Win32_LogicalDisk.VolumeSerialNumber'' | ||
+ | <code exemple> | ||
+ | "39004685" format décimal <=> "02532A0D" format Hexa | ||
+ | </code> | ||
+ | |||
+ | Ainsi on récupérera de ''Win32_LogicalDisk'' les propriétés ''MediaType'' et ''Access'' qui ne sont pas presente dans ''Win32_Volume'' ([[#comparaison_entre_un_win32_logicaldisk_et_win32_volume|Voir le tableau ci dessous]]) | ||
+ | |||
+ | ==== Partition ==== | ||
+ | On pourra savoir sur quelle partition se trouve le disque logique grâce a la classe ''Win32_LogicalDiskToPartition'' | ||
+ | |||
+ | Grace a cette liaison on pourra récupérer un ''Win32_DiskPartition'' | ||
+ | |||
+ | ==== Disque physique ==== | ||
+ | En lisant la propriété ''Win32_DiskPartition.DiskIndex'' et en la faisant correspondre a ''Win32_DiskDrive.Index'' on pourra déterminer le disque physique (DiskDrive) sur lequel se trouve la partition. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Comparaison entre un Win32_LogicalDisk et Win32_Volume ===== | ||
+ | ^Win32_LogicalDisk^Win32_Volume^ | ||
+ | |[[windows:wmi:disks:win32_logicaldisk#access|Access]] = 0;|| | ||
+ | |Caption = "C:";|Caption = "C:\\";| | ||
+ | |Compressed = FALSE;|Compressed = FALSE;| | ||
+ | |Description = "Disque monté local";|| | ||
+ | |DeviceID = "C:";|DriveLetter = "C:";| | ||
+ | |[[windows:wmi:disks:win32_logicaldisk#drivetype|DriveType]] = 3;|DriveType = 3;| | ||
+ | |FileSystem = "NTFS";|FileSystem = "NTFS";| | ||
+ | |FreeSpace = "289824768000";|FreeSpace = "289821196288";| | ||
+ | |MaximumComponentLength = 255;|MaximumFileNameLength = 255;| | ||
+ | |[[windows:wmi:disks:win32_logicaldisk#mediatype|MediaType]] = 12;|| | ||
+ | |Name = "C:";|Name = "C:\\";| | ||
+ | |QuotasDisabled = TRUE;|QuotasEnabled = FALSE;| | ||
+ | |QuotasIncomplete = FALSE;|QuotasIncomplete = FALSE;| | ||
+ | |QuotasRebuilding = FALSE;|QuotasRebuilding = FALSE;| | ||
+ | |Size = "510968983552";|Capacity = "510968983552";| | ||
+ | |SupportsDiskQuotas = TRUE;|SupportsDiskQuotas = TRUE;| | ||
+ | |SupportsFileBasedCompression = TRUE;|SupportsFileBasedCompression = TRUE;| | ||
+ | |VolumeDirty = FALSE;|DirtyBitSet = FALSE;| | ||
+ | |VolumeName = "";|| | ||
+ | |VolumeSerialNumber = "3494A201"; en hexa |SerialNumber = 882156033; en décimal = #3494A201| | ||
+ | | |Automount = TRUE;| | ||
+ | | |BlockSize = "4096";| | ||
+ | | |BootVolume = TRUE;| | ||
+ | | |IndexingEnabled = TRUE;| | ||
+ | | |PageFilePresent = TRUE;| | ||
+ | | |SystemVolume = FALSE;| | ||
+ | | |DeviceID = "\\\\?\\Volume{894b76ef-0000-0000-0000-602200000000}\\";| | ||
+ | |||
===== Win32_DiskDrive ===== | ===== Win32_DiskDrive ===== | ||
- | La classe Win32_DiskDrive représente un lecteur de disque physique tel qu’il est vu par un ordinateur fonctionnant avec le système d’exploitation Win32.\\ | + | La classe ''Win32_DiskDrive'' représente un lecteur de disque physique tel qu’il est vu par un ordinateur fonctionnant avec le système d’exploitation Win32.\\ |
Toute interface vers un lecteur de disque physique Win32 est un descendant (ou membre) de cette classe.\\ | Toute interface vers un lecteur de disque physique Win32 est un descendant (ou membre) de cette classe.\\ | ||
Les fonctionnalités du lecteur de disque vu à travers cet objet correspondent aux caractéristiques logiques et de gestion du disque.\\ | Les fonctionnalités du lecteur de disque vu à travers cet objet correspondent aux caractéristiques logiques et de gestion du disque.\\ | ||
Ligne 114: | Ligne 176: | ||
Un disque dur peut comporter plusieurs volumes, et les volumes peuvent également avoir plusieurs disques.\\ | Un disque dur peut comporter plusieurs volumes, et les volumes peuvent également avoir plusieurs disques.\\ | ||
La classe ''Win32_Volume'' ne prend pas en charge la gestion du lecteur de disquette. | La classe ''Win32_Volume'' ne prend pas en charge la gestion du lecteur de disquette. | ||
+ | |||
+ | **IDENTIFICATION** | ||
+ | |||
+ | D’après mes tests on doit pouvoir identifier de manière unique un Volume avec la propriété ''DeviceID''.\\ | ||
+ | Cela même si le volume change de lettre (propriété ''DriveLetter'') | ||
+ | |||
+ | **LIAISON AVEC UN LOGICALDISK** | ||
+ | |||
+ | On doit pouvoir utiliser la propriété ''DriveLetter'' pour la mettre en correspondance avec la Propriété ''DeviceID'' du ''Win32_LogicalDisk'' | ||
+ | |||
+ | ''Win32_Volume.DriveLetter'' <-> ''Win32_LogicalDisk.DeviceID'' | ||
+ | |||
+ | Mais seulement dans le contexte présent, a l'instant T. | ||
+ | |||
<code - __PATH> | <code - __PATH> |