L'objectif de ce script est d'afficher la liste de toutes les VMs démarrées sur l'ensemble des ESXi d'un Cluster spécifique.
La sortie affichera le nom du Cluster, le nom de chacun des l'ESXi, la liste des VMs que chaque ESXi héberge ainsi que l'état de la VM et son datastore.
Voici le script qui sera utilisé pour afficher la liste.
Les différentes variables sont à remplir selon votre configuration.
Le compte utilisateur doit être un compte ayant des privilèges administrateur sur vCenter.
<#
. AUTEUR : Antoine JOVELIN
. FONCTION : Lister les VMs PoweredOn et leurs Datastores dans un Cluster specifique
. UTILISATION :
- Lancer le script
#>
cls
# Declaration des fonctions
function vcenter-connect{
$VC = Read-Host -Prompt " Entrer le nom de vCenter "
$cred = Get-Credential
Write-Host;
Write-Host -ForegroundColor cyan "Connexion à vCenter. Merci de patienter..."
Connect-VIServer $VC -Credential $cred
Write-Host;
}
function vcenter-disconnect{
Write-Host;
Write-Host -ForegroundColor cyan "Déconnexion de vCenter..."
Disconnect-viserver -Server $Global:DefaultVIServer -Confirm:$false -Force
Write-Host;
}
# Debut du script
vcenter-connect
Write-Host;
Write-Host -fore cyan "
###########################################################################
# Lister les VMs PoweredOn et leurs Datastores dans un Cluster specifique #
###########################################################################"
Write-Host;
$clustername = Read-Host -Prompt " Entrer le nom du Cluster "
Write-Host;
$esxi = Get-cluster "$clustername" | Get-VMHost
Write-host "Traitement en cours du CLUSTER : " -NoNewline ; write-host $clustername -ForegroundColor Cyan
foreach ($VMHost in $esxi) {
Write-host "Traitement en cours de l'ESXi : " -NoNewline ; write-host $VMHost -ForegroundColor Green
Write-Host;
$vmlist = Get-VMHost -name $VMhost | Get-vm
$PowerState = "PoweredOn"
foreach ($vmname in $vmlist) {
Get-VMHost -name $VMhost | Get-vm -name $vmname | select Name, powerstate, @{N="Datastore";E={[string]::Join(',',(Get-Datastore -Id $_.DatastoreIdList | Select -ExpandProperty Name))}} | where {$_.powerstate -eq $PowerState}
}
}
Write-Host;
vcenter-disconnect
Le résultat sera sous cette forme :