Lorsque l’infrastructure virtuelle est conséquente, il est important d’avoir une cartographie des différents ESX de votre vCenter.
Le script suivant permet de lister des informations concernant chaque ESX comme son nom, son éventuel cluster, le port group de management, l’ip et le masque.
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) = “Nom Folder1”
$Sheet.Cells.Item(1,3) = “Nom Folder2”
$Sheet.Cells.Item(1,4) = “Nom Cluster”
$Sheet.Cells.Item(1,5) = “Nom PortGroup”
$Sheet.Cells.Item(1,6) = “IP”
$Sheet.Cells.Item(1,7) = “Masque”
$WorkBook = $Sheet.UsedRange
$WorkBook.Interior.ColorIndex = 15
$WorkBook.Font.Bold = $True
$introw =2
$myhosts = Get-VMHost
foreach ($line in $myhosts) {
    $infoESX = $line.Name
    $infoModel = $line.Model
    $infoCLuster = $line.Parent.Name
    $infoFolder1 = $line.Parent.ParentFolder.Parent.Name
    $infoFolder2 = $line.Parent.ParentFolder.Parent.Parent.Name
    $networkadapter = Get-VMHostNetworkAdapter -VMKernel -VMHost $line | Where {$_.PortGroupName -like “Management*“} #Il récupère le portgroup commençant par Management. A modifier selon vos norme (exemple : mgmt)
    if ($networkadapter -ne $null){
        $infoPortGroup = echo $networkadapter.PortGroupName    
        $infoIP = echo $networkadapter.IP    
        $infoSubnet = echo $networkadapter.SubnetMask        
    }else {
        $networkadapter = Get-VMHostNetworkAdapter -Console -VMHost $line | Where {$_.PortGroupName -like “Service Console*“} # Pour les ESX les plus anciens le management se nomme service console
        $infoPortGroup = echo $networkadapter.PortGroupName    
        $infoIP = echo $networkadapter.IP    
        $infoSubnet = echo $networkadapter.SubnetMask        
    }
    #Remplissage du tableau
    $Sheet.Cells.Item($intRow, 1) = $infoESX
    $Sheet.Cells.Item($intRow, 2) = $infoFolder1
    $Sheet.Cells.Item($intRow, 3) = $infoFolder2
    $Sheet.Cells.Item($intRow, 4) = $infoCLuster
    $Sheet.Cells.Item($intRow, 5) = $infoPortGroup
    $Sheet.Cells.Item($intRow, 6) = $infoIP
    $Sheet.Cells.Item($intRow, 7) = $infoSubnet
    $intRow++
}
Disconnect-VIServer -Confirm:$False

Share