Ich habe Hyper-V Server 2012 R2 auf einem Server mit Hyper-V Server 2012 installiert. Dabei wurde der Standardordner Windows.old
erstellt. Ich möchte diesen Ordner jetzt sicher entfernen. Die Standardmethode für eine vollständige Benutzeroberfläche ist die Verwendung der Datenträgerbereinigung, aber diese Option ist auf Hyper-V-Servern natürlich nicht verfügbar.
Gibt es in diesem Szenario eine formale Möglichkeit, diesen Ordner zu entfernen? Ich weiß, wenn dies Server Core wäre, könnte ich die vollständige GUI einschließlich Desktop Experience installieren, aber das wäre eine Menge Unsinn, nur um einen Ordner sauber zu entfernen.
Mein Hauptgrund für die Frage rmdir /s
ist, dass der Windows.old
Ordner viele Verknüpfungen hat und ich dabei nichts in der Kopie des Produktionsbetriebssystems brechen möchte.
quelle
Antworten:
Ich habe zuerst versucht, cleanmgr.exe (Disk Cleanup Tool) zu kopieren und auszuführen, aber es gibt zu viele Abhängigkeiten von DLLs, die in Core / Hyper-V Server nicht vorhanden sind.
Also habe ich stattdessen das Verzeichnis manuell gelöscht.
Zuerst entfernte ich alle Verbindungspunkte und symbolischen Verbindungen. Dazu habe ich junction.exe von SysInternals verwendet. Kopieren Sie die exe in ein Verzeichnis in Ihrem Pfad. Ich habe es ausgeführt, um eine Liste aller Abzweigungen zu erhalten:
Ich habe eine PowerShell geöffnet:
und führte das folgende Skript aus, um die relevanten Zeilen zu finden und junction.exe erneut auszuführen:
Dadurch wurden alle Verbindungspunkte und die einzelne symbolische Verknüpfung auf meinem System entfernt.
Zurück in cmd.exe Ich habe jetzt drei Befehle ausgeführt, um Berechtigungen zu löschen und alle Dateien zu löschen:
In meinem Test habe ich einen neuen Hyper-V-Server 2012 installiert und dann auf 2012 R2 aktualisiert. Windows.old ist jetzt nicht mehr verfügbar und das System funktioniert einwandfrei, wobei alle alten Junction-Ziele intakt sind.
quelle
takeown
es etwas peinlich ist, zuzugeben, dass ich nichts davon wusste.Ich habe die Antwort von Peter H verwendet und bestätigt, dass sie funktioniert. Ich musste dies jedoch auf mehreren Servern tun. Deshalb habe ich seinen Code in ein Powershell-Skript geändert, das entweder lokal oder per PS-Remoting von einem anderen Computer ausgeführt werden kann. Dies ist die .ps1-Datei:
quelle