Pour prévenir des problèmes de saturation des disques des machines virtuelles dans un environnement important, je voulais un script qui m’exporte dans un fichier le taux d’occupation des volumes de chacune de VMs sous Windows ou Linux.
Ce script PowerCli consulte toutes les VMs l’architecture et fait un état de chaque disque. Il calcul l’espace en GB et le pourcentage de disque libre.
$date = (Get-Date).ToString("ddMMyyyyhhmmss")
$file = ".\Export_vS\" + $date + "-VMDisksState.csv"
$resfile = New-Item -ItemType file -Path $file -Force
Add-Content -Path $resfile -Value "Name;Volume;GB Libre;% Libre"
Get-VM | foreach {
$disks = $_.guest.disks
Foreach ($disk in $disks) {
$FreeSpace = [math]::round([int64]$disk.FreeSpace/1GB,2)
$Pourcent = [math]::round(([int64]$disk.FreeSpace*100)/$disk.Capacity)
Add-Content -Path $resfile -Value "$($_.name);$($disk.path);$($FreeSpace);$($pourcent)"
}
} |
Dans votre profile, vous souhaitez vous connecter automatiquement à votre disque USB.
Il peut arriver que la lettre change.
Pour retrouver systématiquement la lettre de votre disque, voici un méthode.
$drive = get-psdrive | where-object { $_.description -eq "Disk Label" }
Set-Location $drive.root |
Ce script affiche la taille et le pourcentage d’espace disque libre sur tous les volumes montés sur les serveurs de boites aux lettres.
$mbserver = Get-MailboxServer
Foreach ($server in $mbserver) {
"___________"
""
$server.name
"___________"
""
"System Volume FreeSpace (GB) PourcentFree"
"------ ------ -------------- ------------"
Get-WmiObject win32_volume -ComputerName $server.name | Sort-Object -Property Name |
Format-Table -HideTableHeaders @{e={$_.systemname};n="" },
@{e={$_.name};n="" },
@{ e={[math]::round($_.FreeSpace/1GB,2)};n="" },
@{ e={[math]::round(($_.FreeSpace*100)/$_.Capacity) };n="" }
} |
Affiche l’espace disque disponible en taille et pourcentage de toutes les partitions sur un serveur.
Get-WmiObject win32_volume -computer "Server Name" | Sort-Object -Property Name | ft SystemName, Name,
@{ e={[math]::round($_.FreeSpace/1GB,2) } ;l="FreeSpace (GB)" },
@{ e={[math]::round(($_.FreeSpace*100)/$_.Capacity) } ;l="PourcentFree" } |