Le script suivant permet de donner beaucoup d’informations sur chaque ESX du vCenter comme sa version, son modèle, le nombre et le type de CPU, la mémoire, le nom de VMs hébergées et le nombre de VM allumées, etc. Il permet à un administrateur d’extraire toutes ces informations dans un fichier excel et ce de façon automatique.
Connect-VIServer “nom-vCenter”
$excel = New-Object -ComObject Excel.Application
$excel.visible = $True
$excel = $excel.Workbooks.Add()
### Initialisation du tableau Excel ###
$Sheet = $Excel.Worksheets.Item(1)
$Sheet.Cells.Item(1,1) = “Nom ESX”
$Sheet.Cells.Item(1,2) = “Version”
$Sheet.Cells.Item(1,3) = “Build”
$Sheet.Cells.Item(1,4) = “Nom Cluster”
$Sheet.Cells.Item(1,5) = “Marque”
$Sheet.Cells.Item(1,6) = “Modèle”
$Sheet.Cells.Item(1,7) = “Type CPU”
$Sheet.Cells.Item(1,8) = “Nbre CPU”
$Sheet.Cells.Item(1,9) = “Nbre Coeur”
$Sheet.Cells.Item(1,10) = “Mémoire en Go”
$Sheet.Cells.Item(1,11) = “CPU en Mhz”
$Sheet.Cells.Item(1,12) = “Nbre VMs On”
$Sheet.Cells.Item(1,13) = “Nbre VMs”
$WorkBook = $Sheet.UsedRange
$WorkBook.Interior.ColorIndex = 15
$WorkBook.Font.Bold = $True
$introw =2
$myhosts = Get-VMHost
foreach ($line in $myhosts) {
    $infoStorage = $null
    $infoESX = Get-VMHost -Name $line
    $VMs = $infoESX | Get-VM
    $NumVMOn = $infoESX | Get-VM | where {$_.PowerState -eq “PoweredOn”}
    Get-VMHost -Name $line | %{Get-View $_.ID} | %{
    $infoESX2 = “” | select NumCpuPackages, NumCpuCores, Hz, Memory, VM
    $infoESX2.NumCpuPackages = $_.Hardware.CpuInfo.NumCpuPackages
    $infoESX2.NumCpuCores = $_.Hardware.CpuInfo.NumCpuCores
    $infoESX2.Hz = $_.Hardware.CpuInfo.Hz
    $infoESX2.Memory = $_.Hardware.MemorySize
    #Remplissage du tableau
    $Sheet.Cells.Item($intRow, 1) = $infoESX.name
    $Sheet.Cells.Item($intRow, 2) = $infoESX.version
    $Sheet.Cells.Item($intRow, 3) = $infoESX.Build
    $Sheet.Cells.Item($intRow, 4) = $infoESX.Parent.Name
    $Sheet.Cells.Item($intRow, 5) = $infoESX.Manufacturer
    $Sheet.Cells.Item($intRow, 6) = $infoESX.Model
    $Sheet.Cells.Item($intRow, 7) = $infoESX.ProcessorType
    $Sheet.Cells.Item($intRow, 8) = $infoESX2.NumCpuPackages
    $Sheet.Cells.Item($intRow, 9) = $infoESX2.NumCpuCores
    $Sheet.Cells.Item($intRow, 10) = $infoESX.MemoryTotalGB
    $Sheet.Cells.Item($intRow, 11) = $infoESX.CpuTotalMhz
    $Sheet.Cells.Item($intRow, 12) = $NumVMOn.Count
    $Sheet.Cells.Item($intRow, 13) = $VMs.count
    $intRow++
    }
}
Disconnect-VIServer -Confirm:$False

Share