This is an old revision of the document!
Powershell script
# Connexion à vCenter # Remplacez "vcenter.vlab.local" par l'adresse de votre vCenter # Connect-VIServer -Server "vcenter.vlab.local" # --- Définition de la fonction pour collecter les données --- function Get-VMDiskInfo { param( [Parameter(Mandatory=$true)] [VMware.VimAutomation.ViCore.Impl.V1.Inventory.VirtualMachineImpl[]]$VMs ) $Report = @() foreach ($vm in $VMs) { # Récupère tous les contrôleurs de disque SCSI et les disques $Disks = Get-HardDisk -VM $vm foreach ($disk in $Disks) { # Extraction des informations clés $DiskController = $disk.Parent $SCSIController = $disk.ScsiController # L'adresse SCSI est composée du Bus (ou contrôleur) et du Unit Number (ou Target ID) # C'est l'équivalent du "Host:Bus:Target:LUN" pour les disques physiques ou du "Bus:Target:LUN" # C'est ce qui correspond au format type lsscsi [h:c:t:l] $SCSIAddress = "$($disk.ScsiController.BusNumber):$($disk.UnitNumber)" # Obtention du chemin du VMDK $VmdkPath = $disk.FileName # Création de l'objet de résultat $DiskInfo = [PSCustomObject]@{ VMName = $vm.Name DiskLabel = $disk.Name # ex: Hard Disk 1 SCSIAddressVMX = "scsi$VirtualDeviceNode" SCSIBus = $disk.ScsiController.BusNumber # ex: 0 ou 1 SCSIUnit = $disk.UnitNumber # ex: 0, 1, 2... SCSIAddress = $SCSIAddress # Format Bus:Unit (équivalent c:t:l) DiskSizeGB = [Math]::Round($disk.CapacityGB, 2) # Taille du disque en GB VmdkPath = $VmdkPath # Chemin complet du fichier VMDK ControllerType= $SCSIController.Type # Type de contrôleur (e.g., VirtualLsiLogicController) Persistence = $disk.Persistence # Type de persistance (e.g., Persistent) } $Report += $DiskInfo } } return $Report } # --- Exécution et affichage des résultats --- # 1. Option A: Pour toutes les VMs de vCenter $AllVMs = Get-VM $Result = Get-VMDiskInfo -VMs $AllVMs # 2. Option B: Pour une seule VM (décommenter et remplacer le nom) # $SingleVM = Get-VM "NomDeVotreVM" # $Result = Get-VMDiskInfo -VMs $SingleVM # Affichage du résultat dans la console $Result | Format-Table -AutoSize # Exportation vers un fichier CSV (Optionnel) # $Result | Export-Csv -Path "C:\Temp\VM_Disk_Report.csv" -NoTypeInformation
VMName,DiskLabel,SCSIBus,SCSIUnit,SCSIAddress,DiskSizeGB,VmdkPath,ControllerType,Persistence web-prod-01,Hard Disk 1,0,0,0:0,40.00,[datastore1] web-prod-01/web-prod-01.vmdk,VirtualLsiLogicController,Persistent web-prod-01,Hard Disk 2,0,1,0:1,100.00,[datastore1] web-prod-01/web-prod-01_1.vmdk,VirtualLsiLogicController,Persistent db-dev-05,Hard Disk 1,0,0,0:0,60.00,[datastore2] db-dev-05/db-dev-05.vmdk,VirtualSCSIController,Persistent