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:43] thierry [Titre] |
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 ===== | ===== Comparaison entre un Win32_LogicalDisk et Win32_Volume ===== | ||
^Win32_LogicalDisk^Win32_Volume^ | ^Win32_LogicalDisk^Win32_Volume^ | ||
- | |Access = 0;|| | + | |[[windows:wmi:disks:win32_logicaldisk#access|Access]] = 0;|| |
|Caption = "C:";|Caption = "C:\\";| | |Caption = "C:";|Caption = "C:\\";| | ||
|Compressed = FALSE;|Compressed = FALSE;| | |Compressed = FALSE;|Compressed = FALSE;| | ||
- | |CreationClassName = "Win32_LogicalDisk";|| | ||
|Description = "Disque monté local";|| | |Description = "Disque monté local";|| | ||
|DeviceID = "C:";|DriveLetter = "C:";| | |DeviceID = "C:";|DriveLetter = "C:";| | ||
- | |DriveType = 3;|DriveType = 3;| | + | |[[windows:wmi:disks:win32_logicaldisk#drivetype|DriveType]] = 3;|DriveType = 3;| |
|FileSystem = "NTFS";|FileSystem = "NTFS";| | |FileSystem = "NTFS";|FileSystem = "NTFS";| | ||
|FreeSpace = "289824768000";|FreeSpace = "289821196288";| | |FreeSpace = "289824768000";|FreeSpace = "289821196288";| | ||
|MaximumComponentLength = 255;|MaximumFileNameLength = 255;| | |MaximumComponentLength = 255;|MaximumFileNameLength = 255;| | ||
- | |MediaType = 12;|| | + | |[[windows:wmi:disks:win32_logicaldisk#mediatype|MediaType]] = 12;|| |
|Name = "C:";|Name = "C:\\";| | |Name = "C:";|Name = "C:\\";| | ||
|QuotasDisabled = TRUE;|QuotasEnabled = FALSE;| | |QuotasDisabled = TRUE;|QuotasEnabled = FALSE;| | ||
Ligne 30: | Ligne 61: | ||
|QuotasRebuilding = FALSE;|QuotasRebuilding = FALSE;| | |QuotasRebuilding = FALSE;|QuotasRebuilding = FALSE;| | ||
|Size = "510968983552";|Capacity = "510968983552";| | |Size = "510968983552";|Capacity = "510968983552";| | ||
- | |SupportsDiskQuotas = TRUE;|| | + | |SupportsDiskQuotas = TRUE;|SupportsDiskQuotas = TRUE;| |
|SupportsFileBasedCompression = TRUE;|SupportsFileBasedCompression = TRUE;| | |SupportsFileBasedCompression = TRUE;|SupportsFileBasedCompression = TRUE;| | ||
- | |SystemCreationClassName = "Win32_ComputerSystem";|SupportsDiskQuotas = TRUE;| | ||
- | |SystemName = "PC-THIERRY";|SystemName = "PC-THIERRY";| | ||
|VolumeDirty = FALSE;|DirtyBitSet = FALSE;| | |VolumeDirty = FALSE;|DirtyBitSet = FALSE;| | ||
|VolumeName = "";|| | |VolumeName = "";|| | ||
Ligne 147: | 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> |