Zum Inhalt springen
>_marc-oltersdorf.de

VS Code Insiders: Alte Versionsordner unter Windows aufräumen und viele GB zurückholen

Marc Oltersdorf 3 Min. Lesezeit

Unter Windows sammelten sich im Installationsordner von VS Code Insiders 22 Ordner mit zehnstelligen Hex-Namen an, zusammen etwa 16 GB. Es sind alte Programmversionen aus den täglichen Updates. Ich zeige, wie man den aktiven Ordner erkennt und den Rest löscht.

$ git log --graph Der Weg zur Lösung

  1. Problem Platz auf C: knapp, rund 20 Ordner à 800 MB

    Im Programmordner von VS Code Insiders liegen zahlreiche Ordner mit zehnstelligen Hex-Namen.

  2. Irrweg Falscher Pfad

    Der vermutete Ordner direkt unter dem lokalen AppData-Ordner existiert nicht; die Installation liegt unter Programs.

  3. Irrweg Größenabfrage über alle Ordner

    Die rekursive Größenberechnung dauerte länger als zwei Minuten; das Änderungsdatum der obersten Ebene reichte für die Übersicht.

  4. Erkenntnis Es sind alte Programmversionen

    Jeder Ordner ist ein kompletter Programmstand aus einem früheren Update; der jüngste ist der aktive.

  5. Lösung Alle bis auf den aktuellen löschen

    Insiders beenden, laufendes Update abwarten, dann per Filter auf zehnstellige Hex-Namen alles außer dem aktuellen Ordner entfernen. Rund 14 GB wurden frei, Insiders startet normal.

Auf einem Windows-Rechner fehlte Platz auf C:. Beim Nachsehen lagen im Programmordner von VS Code Insiders rund 20 Ordner mit Namen wie a1b2c3d4e5, jeder etwa 750 MB groß. Zusammen waren das gut 16 GB. Hier steht, was das ist, wie man den aktiven Ordner erkennt und wie man den Rest sicher entfernt.

Das Problem

Der Ordner liegt nicht dort, wo man ihn zuerst vermutet. Unter %LOCALAPPDATA%\Microsoft VS Code Insiders gibt es nichts. Die Installation (bei einer Installation nur für den eigenen Benutzer) liegt hier:

%LOCALAPPDATA%\Programs\Microsoft VS Code Insiders

Darin liegen neben Code - Insiders.exe, bin und den Uninstall-Dateien lauter Ordner mit zehnstelligen Hex-Namen. Jeder enthält eine komplette Programmversion (etwa 3.200 Dateien, 730 bis 780 MB). Beim Update legt Insiders den neuen Stand in einen neuen Ordner und stellt dann um. Die alten Ordner bleiben stehen.

Die Lösung

1. Ansehen, was da liegt

Erst nur auflisten, nichts löschen. Die Größenabfrage über alle Ordner dauert wegen der vielen kleinen Dateien lange, daher zuerst nur die oberste Ebene:

Get-ChildItem "$env:LOCALAPPDATA\Programs\Microsoft VS Code Insiders" -Force | Select-Object Name, LastWriteTime | Sort-Object LastWriteTime

2. Aktiven Ordner erkennen

Zwei Wege, die zusammenpassen sollten:

  • Laufende Prozesse: Bei geöffnetem Insiders zeigt diese Abfrage, aus welchem Ordner die Prozesse laufen.
  • Neuester Ordner: Der Ordner mit dem jüngsten Änderungsdatum ist der Stand des letzten Updates.
$b = "$env:LOCALAPPDATA\Programs\Microsoft VS Code Insiders"; Get-Process | Where-Object { $_.Path -like "$b\*" } | Group-Object { ($_.Path.Substring($b.Length+1) -split '\\')[0] } | Select-Object Name, Count

Die Versionsnummer eines Ordners steht in resources\app\package.json:

(Get-Content "$b\ordner\resources\app\package.json" -Raw | ConvertFrom-Json).version

3. Alte Ordner löschen

Zuerst VS Code Insiders beenden und warten, bis ein laufendes Update fertig ist (eine Datei updating_version im Programmordner zeigt, dass noch eins läuft). Der Befehl bricht ab, wenn noch ein Prozess aus dem Ordner läuft, und behält den angegebenen Ordner:

$b="$env:LOCALAPPDATA\Programs\Microsoft VS Code Insiders"; if(Get-Process | ? { $_.Path -like "$b\*" }){ "Erst VS Code Insiders beenden" } else { Get-ChildItem $b -Directory | ? { $_.Name -match '^[0-9a-f]{10}$' -and $_.Name -notin 'aktueller-ordner' } | Remove-Item -Recurse -Force }

Der Filter ^[0-9a-f]{10}$ trifft nur die Versionsordner. bin, die EXE-Dateien und der Uninstaller bleiben unberührt. Mehrere Namen zum Behalten gehen mit Komma, etwa als Reserve den vorletzten Stand.

4. Prüfen

Get-ChildItem "$env:LOCALAPPDATA\Programs\Microsoft VS Code Insiders" | Select-Object Name; "{0:N1} GB frei" -f ((Get-PSDrive C).Free/1GB)

Danach VS Code Insiders einmal starten. Bei mir startete es ohne Probleme, und es waren etwa 14 GB mehr frei. Die Einstellungen liegen unter %APPDATA%\Code - Insiders und sind vom Löschen nicht betroffen.

Warum das so ist

Stolperfallen

  • Falscher Pfad: Unter %LOCALAPPDATA% direkt gibt es keinen Ordner dieses Namens, er liegt unter Programs. Bei einer Installation für alle Benutzer liegt er an anderer Stelle (C:\Program Files), das habe ich nicht ausprobiert.
  • Update läuft: Löschen während eines Updates kann einen halb installierten Stand hinterlassen. Auf updating_version achten.
  • Größen berechnen dauert: Eine rekursive Größenabfrage über alle Ordner lief bei mir länger als zwei Minuten. Für die Übersicht reicht das Änderungsdatum.
  • Auch die Reserve war weg: Ich wollte den vorletzten Ordner als Reserve behalten, nach dem Löschen und dem Start war er trotzdem verschwunden. Warum, habe ich nicht untersucht.

Hat dir das geholfen?

RSS abonnieren

$ ls ../ Passt dazu

5 min

Greenshot: Export nach Outlook zeigt nur wieder das Menü (TYPE_E_CANTLOADLIBRARY)

Greenshot bietet Outlook als Ziel an, beim Auswählen erscheint aber nur wieder das Menü. Im Log steht TYPE_E_CANTLOADLIBRARY: Die COM-Registrierung von Outlook ist defekt. Handarbeit in der Registry half nicht, die Onlinereparatur entfernte Office sogar – erst eine Neuinstallation per Office Deployment Tool mit dem richtigen Update-Kanal löste das Problem.

6 min

PowerShell-Skripte umsortieren, ohne Aufrufer zu brechen: Weiterleitung am alten Pfad, die mitschreibt

Ein gewachsener Skriptordner auf einer Freigabe sollte neu sortiert werden, aber niemand wusste, welche geplanten Aufgaben, Monitoring-Sensoren und Verknüpfungen die Skripte über ihren Pfad aufrufen. Statt eines Stichtags bleibt an jedem alten Pfad eine kleine Weiterleitung liegen, die den Aufrufer protokolliert und das Skript am neuen Ort startet. Nach ein paar Tagen zeigt das Protokoll, was umgestellt werden muss.