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.