Pour chaque administrateur, il est important de pouvoir, lorsqu’on a une grosse infrastructure, de pouvoir obtenir la liste des VM en thick ou en thin. Avec PowerCli, vous avez la possibilité de lister les disques de chaque VM et récupérer les informations essentielles comme : le format du disque, le nom du disque ainsi que la taille du disque. Le script ci-dessous permet de lister toutes ces informations pour chaque VM d’un cluster et de les extraire dans un fichier excel facilement exploitable :
Connect-VIServer « Nom-vCenter »
$excel = New-Object -ComObject Excel.Application
$excel.visible = $True
$excel = $excel.Workbooks.Add()
$Sheet = $Excel.Worksheets.Item(1)
$Sheet.Cells.Item(1,1) = “VM”
$Sheet.Cells.Item(1,2) = “Disque”
$Sheet.Cells.Item(1,3) = “Format”
$Sheet.Cells.Item(1,4) = “Filename”
$Sheet.Cells.Item(1,5) = “Taille en Go”
$WorkBook = $Sheet.UsedRange
$WorkBook.Interior.ColorIndex = 15
$WorkBook.Font.Bold = $True
$introw =2
$Cluster = “Nom-Cluster”
$myvms = Get-Cluster -Name $Cluster  | Get-VM
foreach ($vm in $myvms){
    $info = Get-VM $vm | Get-HardDisk
    foreach ($disk in $info){
        if ($disk.StorageFormat -eq 1){
            $format = “Thick”}
        if ($disk.StorageFormat -eq 2){
            $format = “LazyZeroedThick”}
        if ($disk.StorageFormat -eq 3){
            $format = “Thin”}
        if ($disk.StorageFormat -eq 4){
            $format = “EagerZeroedThick”}
        #Remplissage du tableau
        $Sheet.Cells.Item($intRow, 1) = $vm.Name
        $Sheet.Cells.Item($intRow, 2) = $disk.Name
        $Sheet.Cells.Item($intRow, 3) = $format
        $Sheet.Cells.Item($intRow, 4) = $disk.Filename
        $Sheet.Cells.Item($intRow, 5) = $disk.CapacityGB
        $intRow++
    }
}
$intRow++
Il est également possible de faire la même chose pour toutes les VMs du vCenter :
Connect-VIServer « Nom-vCenter »
$excel = New-Object -ComObject Excel.Application
$excel.visible = $True
$excel = $excel.Workbooks.Add()
$Sheet = $Excel.Worksheets.Item(1)
$Sheet.Cells.Item(1,1) = “VM”
$Sheet.Cells.Item(1,2) = “Disque”
$Sheet.Cells.Item(1,3) = “Format”
$Sheet.Cells.Item(1,4) = “Filename”
$Sheet.Cells.Item(1,5) = “Taille en Go”
$WorkBook = $Sheet.UsedRange
$WorkBook.Interior.ColorIndex = 15
$WorkBook.Font.Bold = $True
$introw =2
$myvms = Get-VM
foreach ($vm in $myvms){
    $info = Get-VM $vm | Get-HardDisk
    foreach ($disk in $info){
        if ($disk.StorageFormat -eq 1){
            $format = “Thick”}
        if ($disk.StorageFormat -eq 2){
            $format = “LazyZeroedThick”}
        if ($disk.StorageFormat -eq 3){
            $format = “Thin”}
        if ($disk.StorageFormat -eq 4){
            $format = “EagerZeroedThick”}
        #Remplissage du tableau
        $Sheet.Cells.Item($intRow, 1) = $vm.Name
        $Sheet.Cells.Item($intRow, 2) = $disk.Name
        $Sheet.Cells.Item($intRow, 3) = $format
        $Sheet.Cells.Item($intRow, 4) = $disk.Filename
        $Sheet.Cells.Item($intRow, 5) = $disk.CapacityGB
        $intRow++
    }
}
$intRow++

Share