VSS Snapshots auf Servern ermitteln

Ich hatte immer mal wieder das Problem, das VSS Snapshots auf Servern nicht bereinigt wurden. Irgendwann läuft dann die Festplatte voll, weil die Betriebssysteme zig Snapshots hatten, die nie bereinigt wurden. Ich habe daher ein kleines Script erstellt, welches die Anzahl der aktiven Snapshots, sowie das Datum des ersten und des letzten Snapshots ermittelt.

$serverlist  = @(„SRV01″,“SRV02″,“SRV03″,“SRV04″,“USW“)

$vssresults =@()
foreach ($server in $serverlist)
{
$vsslist = Get-WmiObject Win32_ShadowCopy -ComputerName $server
$vsscount = $vsslist.count
if ($vsscount -gt 0)
{
$oldestvss = $vsslist | select -first 1
$oldestvss = $oldestvss.Installdate
$oldestvss = $oldestvss.split(„.“)[0]
$oldestvss = [datetime]::ParseExact($oldestvss,“yyyyMMddHHmmss“,$null)

$newestvss = $vsslist | select -last 1
$newestvss = $newestvss.Installdate
$newestvss = $newestvss.split(„.“)[0]
$newestvss = [datetime]::ParseExact($newestvss,“yyyyMMddHHmmss“,$null)

$vssresults += new-object PSObject -property @{Servername=“$server“;SnapshotCount=“$vsscount“;OldestSnapshot=“$oldestvss“;NewestSnapshot=“$newestvss“}
}
else
{
$vssresults += new-object PSObject -property @{Servername=“$server“;SnapshotCount=“0″;OldestSnapshot=“0″;NewestSnapshot=“0″}
}
}

$vssresults

Das Objekt “$vssresults” erhält alle Server aus “$serverlist” die aktive Snapshots haben. Das Objekt kann dann weiter verarbeitet werden um es ggf. in eine Monitoring Lösung wie Solarwinds oder PRTG zu integrieren.

Schreibe einen Kommentar