#Inscript dans un fichier le nom du datastore utilisé pour stocker une VM
#Attention : le script part du principe qu'une VM n'a pas ses disques répartis sur plusieurs DataStores.
#Ainsi, si il y a plusieurs disques, seul le nom du dernier Datastore sera retenu.
#Si le disque est de type RAW type, alors un résultat vide sera retourné
$varCheminRepertoireScript = [System.IO.Path]::GetDirectoryName($MyInvocation.MyCommand.Definition)
$currentScriptName = $MyInvocation.MyCommand.Name #Récupération du nom du script en cours
#On ne prend que le nom du script sans l'extention. Pour cela on chercher la position d'un point en partant de la droite et on prend tout ce qui est à sa gauche
$currentScriptName = $currentScriptName.substring(0,$($currentScriptName.lastindexofany(".")))
#Création du fichier vierge
$EmplacementFichier = "$varCheminRepertoireScript\$($currentScriptName)_Result.txt"
$MonFichier = New-Item -type file $EmplacementFichier -Force
$VIserver = "nomserveuravecvcenter.mon.domaine"
asnp vmware* #Import modules VMWares
$vc = Connect-VIServer -Server $VIserver -Force
$MesVms = Get-Vm | Where-Object {$_.VMHost -in ("nomesxi.mon.domaine")}
ForEach ($UneVM in $MesVms) {
#$MaLigne = $UneVM.Name
$MesDisques = $UneVM | Get-HardDisk
ForEach ($UnDisque in $MesDisques) {
$Storage = $UnDisque.Filename
#Write-Host "Traitement de $($UneVM.Name) $Storage" #$($UnDisque.FileName)"
if (($Storage.Length -igt 0) -and ($Storage.substring(0,1) -eq "[")){
$Position = $Storage.indexof("]")
if ($Position -igt 0) {
$Storage = $Storage.substring(0,$Position)
$Storage = $Storage.substring(1)
Write-Host "$($UneVM.Name)/$Storage/$($UnDisque.FileName)"
}
}
else{
Write-Host "$($UneVM.Name) : Le disque n'a pas le bon format : $Storage - $($UnDisque.DiskType)"
$Storage = ""
}
}
add-content $MonFichier "$($UneVM.Name);$Storage"
}
Disconnect-VIServer -Server * -Force -Confirm:$False
Lien vers le fichier : cliquez ici
Pages Web
Site Web | Description |
---|---|
Vmware.com | Get-HardDisk |
Communities.vmware.com | Get List of VMs, Datastores and VMDK / path per Cluster |