vendredi 30 novembre 2018

VMware et Powershell : rapport des versions d'hôtes vSphere

Voici un script permettant de lister les versions des hôtes vSphere présents dans un vCenter. Le premier mode liste tous les hôtes tandis que le deuxième permet de lister une version spécifique, majeure ou mineure. Par exemple, en saisissant "6", alors le script cherchera les serveurs en 6.x.x tandis qu'en envoyant "5.5", il cherchera les serveurs en 5.5.x. Dans tous les cas, un export CSV exploitable est réalisé. Naturellement, il est nécessaire que les modules Powershell de VMware soient déployés sur la machine exécutant le script (si ils ne le sont pas, il suffit simplement de télécharger PowerCli).

Import-Module VMware.VimAutomation.Core

function allhosts{
    Write-Host "Retrieving all hosts on vCenter $vcenter"
    $spheres = Get-VMHost
    process
}

function spechosts{
    Write-Host "Retrieving specific hosts on vCenter $vcenter."
    $reqver = Read-Host "Please input the desired version in one of those formats : 6, 6.0 or 6.0.0"
    if($reqver.Length -lt 5) { $reqver = "$reqver*" }
    $spheres = Get-VMHost | Where-Object {$_.Version -like $reqver}
    process       
}

function process{
    $path = "$env:temp\vmware-hostver-$vcenter.csv"
    $header = "Hostname,PowerState,Version"
    Add-Content -Value $header -Path $path
    foreach($vsphere in $spheres) {
        $row = $vsphere.Name+","+$vsphere.PowerState+","+$vsphere.Version
        Add-Content -Value $row -Path $path
    }
    Write-Host "Processing is done. Results are located in $path."
    explorer $env:temp
}

Write-Host "vSphere host version listing script"
Write-Host "===================================`r`n"
$vcenter = Read-Host "vCenter to connect to ?"
Connect-VIServer $vcenter | Out-Null
Write-Host "1: List all hosts and versions on this vCenter`r`n2: List only hosts running under a specific version"
$mode = Read-Host "Choice"
switch ($mode){
    1 { allhosts }
    2 { spechosts }
}
Disconnect-VIServer $vcenter -confirm:$false | Out-Null
Write-Host "Bye."

Le script est téléchargeable dans une version commentée. 💾

Aucun commentaire:

Enregistrer un commentaire