Lister les disques et informations des disques par VM

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++

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url=""> 


*