Verwaiste Verzeichnisse in CSV’s finden

Immer mal wieder kommt es vor, dass beim verschieben oder exportieren von virtuellen Maschinen Verzeichnisreste auf den CSV’s zurückbleiben. Mit der Zeit sammelt sich so eine ganze Menge Datenmüll an. Dieses kleine Script hilft dabei, die verwaisten Verzeichnisse aufzuspüren, indem es die Verzeichnisse in den VM-Konfigurationen mit den tatsächlichen Verzeichnissen auf den CSV’s abgleicht. So hat man eine gute Grundlage um nicht mehr benötigte Verzeichnisse zu löschen.

# Vergleicht die aktuell vorhandenen Verzeichniseinträge von C:\ClusterStorage\Volume... mit den in den VM Properties hinterlegten.
# Dabei werden die Einträge aufgelistet, für die es keine passende VM gibt. (Property "Path" der VM)
# Ein "." als Output sthet für ein Match: VM <-> Verzeichniseintrag.
#
# Aufruf ohne Parameter
#


$ErrorActionPreference = "Stop"

$Cluster=Get-Cluster -name "."
$ClusterMember=Get-ClusterNode -Cluster $Cluster
$CSVPath="C:\ClusterStorage"
$IstPaths=@()
$VMs=@()

# Alle VMs via Cluster-Knoten einsammeln
foreach ($Member in $ClusterMember) {
    $HostServer=$Member.Name
    $VMs+=Get-VM -ComputerName $HostServer | select name,path
}

# Alle vorhandenen Pfade auf den CSVs einsammeln (VM-Verzeichnisse)
$Volumes=Get-ChildItem $CSVPath
foreach ($CSV in $Volumes) {
	$CSVDir=$CSV.Name
	$SubDir=(Get-ChildItem $CSVPath\$CSVDir)
	foreach ($Dir in $SubDir) {
		$VMDir=$Dir.Name
		$IstPaths+="$CSVPath\$CSV\$VMDir"
	}	
}
$VMCount=$VMs.Count
$DirCount=$IstPaths.Count

write -host "Checke $VMCount VMs und $DirCount Verzeichnisse:"

# Check der Verzeichnisse
foreach($Itim in $IstPaths){
    if ($VMs.Path -Contains $Itim) {
        # Alles Gut: Es gibt eine VM mit diesem Pfad.
        write-host "." -NoNewline
    }
    else {
        # Zombiepfad
        write-host
        Write-Host "Fehlende VM für: $Itim"
    }
}
write-host

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.