Bereinigen von virtuellen maschinen

Published on Saturday, 30 June 2018

Als SharePoint-Entwickler arbeite ich häufig in Virtuellen umgebungen. Diese sollten gerne möglichst "platzsparend" gelagert werden können - das ist auch gut, wenn mal eine Maschine an einen Kollegen "abgetreten" werden soll.

Mein akutelles Vorgehen dabei ist das folgende:

  • [Bereinigung des WinSxS-Ordners](https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/clean-up-the-winsxs-folder mittles Dism.exe /online /Cleanup-Image
    • Für Service-Packs mit dem Parameter /SPSuperseded
    • Für Komponenten mit dem Parameter /StartComponentCleanup /ResetBase
  • Bereinigung der Laufwerke mittels cleangr.exe
    • Um den cleanmgr ohne Rückfragen zu starten gibt es die Parameter /sageset und /sagerun. (Entgegen der Dokumentation gibt es nur 9999 verschiedene Speicherplätze und nicht 65535). Die Einstellungen, die mit "sageset" vorgenommen werden, werden in der registry gespeichert und können daher auch einfach mit Powershell angelegt werden.
  • Defragmentierung des Datenträgers mit ultradefrag
    • Für optimale Ergebnisse verwende ich die Parameter -optimize und -repeat
  • "Nullen" der nicht mehr verwendeten Blöcke des Datenträgers mit sdelete
    • Für das einfache "Nullen" der Blöcke verwende ich den Parameter -z
    • Dieser Schritt führt - zusammen mit der defragmentierung - zu einem besseren Ergebnis beim komprimieren der virtuellen Festplatte

Komplett sieht das Skript dann so aus: