Hyper-V 3.0: Kleines Script zum Aufräumen

Je nachdem wie gründlich man seinen Hyper-V Server pflegt, kann es passieren, dass im Cluster Shared Volume (CSV) ein paar Leichen übrig bleiben, da beim Löschen einer Virtuellen Maschine (VM) nicht automatisch die zugehörigen Disks (VHD) gelöscht werden.

Daher habe ich für meine Demo-Umgebung ein kleines Powershell Script geschrieben, dass alle an im Cluster registrierten VMs angehängte Disks auflistet und diese mit den im Dateisystem vorhandenen VHD Dateien abgleicht. Das Ergebnis kann dann genutzt werden, um eventuelle Leichen zu entdecken.

$vms=get-cluster | Get-ClusterResource | where {$_.ResourceType -like 'Virtual Machine'} | get-vm
$arrFiles=@()
$vms | ForEach-Object {
  $vm=$_
  #Add Hard disks to array
  $vm.HardDrives | ForEach-Object {
    $arrFiles+=$_.Path
  }
  #add isos to array
  $vm.DVDDrives | ForEach-Object {
    $arrFiles+=$_.Path
  }
}
#$arrFiles
Get-ChildItem C:\ClusterStorage -Recurse -Include *.vhd,*.vhdx,*.iso | ForEach-Object {
$file=$_.FullName
if ($arrFiles -notcontains $file) {
    write-host $file 
 }
} 
This entry was posted in Hyper-V, Powershell and tagged , . Bookmark the permalink.