Jedes Mal, wenn ich eine neue Maschine bekam oder die Speicherkapazität erhöhte, fügte ich der neuesten Maschine immer mehr Festplatten hinzu. Jetzt habe ich mehrere Festplatten mit alten Daten (z. B. Windows-Installation, Programmdateien usw.) und ich habe begonnen, symbolische Links zu Dateien zu erstellen und auf diesen Festplatten Verknüpfungen mit tatsächlich verwendeten Daten zu erstellen, um meine primäre SSD-Festplatte mit nicht häufig verwendeten Dateien („C:\ProgramData\Package Cache“) etwas zu entlasten.
Einige Programme auf diesen alten Datenträgern werden möglicherweise sogar noch verwendet, z. B. No-Install-Versionen, die ich oft über einen Link auf meinem Desktop verwende, ohne mich zu erinnern, wo der Speicherort tatsächlich ist, und die ich wahrscheinlich nicht löschen möchte.
Ein Ansatz wäre, alle Verzeichnisse umzubenennen und die Maschine mehrere Monate lang weiter zu verwenden, um zu sehen, wo ich auf tote Links stoße, die auf die betreffenden Laufwerke verweisen. Dies erfordert jedoch einen erheblichen Zeitaufwand, bis ich einige (vielleicht nicht einmal alle) Speicherorte finde.
Jetzt suche ich nach einem aggressiveren Ansatz. Ich habe ein Registry-Suchskript erstellt (https://gist.github.com/Seikilos/ab23cf6b85e1d65936a5), mit dem ich in allen Hives nach allem suchen kann. Ich habe dies getan, um Verweise auf ein bestimmtes altes Laufwerk zu finden, aber es wurden keine offensichtlich relevanten Pfade gefunden (hauptsächlich in HKEY_LOCAL_MACHINE\SOFTWARE\Classes
). Was Sinn macht, da ich von der aktuellen Windows-Installation nichts auf diesen Laufwerken installiert habe.
Aber wie oben geschrieben weiß ich, dass es Abzweigungen oder wahrscheinlich einfache Links oder sonstige Ansichten auf diesem Laufwerk gibt, die ich bisher nicht entdeckt habe, und ich suche nach einer Möglichkeit, jede Möglichkeit zu prüfen, ob auf meiner aktuellen Installation Daten verwendet werden.
Gibt es eine bekannte Möglichkeit, Referenzen zu erhalten, z. B. durch Lesen von Dateitabellen usw., um Verknüpfungen oder symbolische Links zu lokalisieren?
Update: @and31415 hat darauf hingewiesen, dass es einen Befehl gibt, um alle Links und Verbindungen auf Dateisystemebene abzurufen. Wenn ich jedoch einen einfachen Link habe (der mit .lnk endet), dir
zeigt der Befehl ihn nicht an. Das Argument /AL ignoriert sie überhaupt. .lnk-Dateien zu finden ist nicht schwer, aber ich würde sie auch gerne automatisch auflösen können.