Wie installiere ich die Datenträgerbereinigung auf einem Windows 2012-Server, ohne die Desktop Experience zu installieren?

14

Das Problem ist lediglich, dass ich mein Bestes geben möchte, um das .vhdx-Laufwerk einer VM zu bereinigen / zu komprimieren, bevor ich das Cmdlet Optimize-VHD ausführe. Es ist schön, das Dienstprogramm zur Datenträgerbereinigung von Microsoft zu verwenden. Das Problem ist, dass es nicht standardmäßig installiert ist.

Der offizielle Weg, dies zu erreichen, ist die Verwendung von "Rollen und Funktionen hinzufügen" und das Hinzufügen der Funktion "Desktop Experience". Es gibt unerwünschte Nebenwirkungen, unter denen die Funktion zusätzlich die Funktionen "Media Foundation" und "Ink and Handwriting" erfordert. Ich möchte nur "Disk Cleanup".

Granger
quelle
Denken Sie daran, dass Desktop Experience im Gegensatz zu 2008 entfernbar ist und Sie zu Server Core zurückkehren können.
Michael Hampton
Richtig: So habe ich das zum Teil herausgefunden. :) Aber jetzt muss ich meinen Server nicht neu starten, um ihn zu "installieren".
Granger
Löschen Sie auch alle Protokolldateien unter c:\windows\logs\cbs. Einige Benutzer geben an, dass diese Protokolle mehr als 20 GB verbrauchen. Diese Protokolle werden jedes Mal erweitert, wenn Sie die Datenträgerbereinigung oder Windows-Updates ausführen (und wer weiß was noch). Wenn Sie sie nicht löschen können, beenden Sie den TrustedInstallerDienst und versuchen Sie es erneut.
James L.

Antworten:

17

"Disk Cleanup" benötigt nur 2 Dateien (zusammen weniger als 260KB)

"cleanmgr.exe" für Ihre Plattform und "cleanmgr.exe.mui" für Ihr Gebietsschema. Sie befinden sich bereits auf Ihrem Computer in Unterordnern unter "% SystemRoot% \ WinSxS".

Suchen Sie zunächst im Ordner "% SystemRoot% \ WinSxS" nach "cleanmgr.exe". Sie werden wahrscheinlich Dateien in den Ordnern "amd64", "wow64" und "x86" finden. Ich habe "amd64" für beide Dateien in meiner Windows Server 2012 Standard x64-Installation ausgewählt.

Kopieren Sie diese 2 Dateien an diese Speicherorte:

  • % SystemRoot% \ System32 \ cleanmgr.exe
  • % SystemRoot% \ System32 \ de-de \ cleanmgr.exe.mui

(Ich gehe davon aus, dass WinSxS bei Verwendung eines anderen Gebietsschemas mehr Auswahlmöglichkeiten hat und Sie die .mui-Datei in den Unterordner für dieses Gebietsschema kopieren müssen.)

Technisch gesehen sind Sie an diesem Punkt fertig. Führen Sie "cleanmgr.exe" als Administrator aus, wenn Sie möchten, dass Ihnen alles angezeigt wird, was bereinigt werden kann (einschließlich veralteter Windows-Updates, die in WinSxS gespeichert sind und jetzt in Win2012 als Option verfügbar sind).

Wenn Sie mehr "GUI-ness" wollen, fahren Sie fort ...

Erstellen Sie eine Verknüpfung zu der Datei "cleanmgr.exe", um Ihre neue "Datenträgerbereinigung" in dem Startmenü zu erhalten. Legen Sie die neue Verknüpfung im Ordner "% ProgramData% \ Microsoft \ Windows \ Startmenü \ Programme \ Verwaltung" ab. Nennen Sie es "Disk Cleanup". Wenn Sie sich jetzt im Startmenü befinden, können Sie einfach "Disk Cleanup" (Datenträgerbereinigung) eingeben und haben die Option, es zu Beginn als Administrator zu starten.

Damit "Datenträgerbereinigung" im Dialogfeld "Eigenschaften" eines Datenträgers als Schaltfläche angezeigt wird, müssen Sie die Registrierung ändern, um einen neuen Schlüssel und "Wert für erweiterbare Zeichenfolge" hinzuzufügen. Erstellen Sie eine neue .reg-Textdatei und fügen Sie Folgendes ein:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\cleanuppath]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,63,00,6c,00,\
  65,00,61,00,6e,00,6d,00,67,00,72,00,2e,00,65,00,78,00,65,00,20,00,2f,00,44,\
  00,20,00,25,00,63,00,00,00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\cleanuppath]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,63,00,6c,00,\
  65,00,61,00,6e,00,6d,00,67,00,72,00,2e,00,65,00,78,00,65,00,20,00,2f,00,44,\
  00,20,00,25,00,63,00,00,00

Die Hex-Zeichenfolge lautet "% SystemRoot% \ System32 \ cleanmgr.exe / D% c", falls Sie diese manuell hinzufügen möchten. Für mich musste nur der erste Schlüssel hinzugefügt werden. Der zweite Schlüssel war nur ein weiterer Ort, an dem ich die Einstellung gefunden habe. Zu Ihrer Information, es gab 2 andere Stellen in der Registrierung, die sich mit "cleanmgr.exe" befassten, aber zum Glück spielten sie keine Rolle, da sie einige ClassID GUID-Sachen verwendeten.

Granger
quelle
2
Wenn Sie ein 64-Bit-Betriebssystem verwenden, enthält der winsxsOrdner zwei Dateigruppen. Die amd64Dateien gehen in c:\windows\system32und c:\windows\system32\en-USund die x86Dateien gehen in c:\windows\syswow64und c:\windows\syswow64\en-US.
James L.
Es scheint, dass diese Methode nicht vollständig ist. Auf diese Weise habe ich anscheinend nicht die Möglichkeit, "Vorherige Windows-Installationen" zu entfernen. Die Installation von Desktop Experience auf einem bestimmten Host ist ausreichend. Ich überprüfe einige weitere Server, um dies zu bestätigen.
Michael Bisbjerg
1
Versuchte dies auf Win2012 R2, aber Windows sagt mir, dass es nicht unterstützt, alte 16-Bit-Anwendungen (!) Auszuführen. In der EXE-Datei scheint es komprimiert zu sein, aber es scheint kein offizielles Hilfsprogramm zu geben, um es zu extrahieren. Ich habe dieses auf GitHub gefunden, es hat bei meiner Installation gut funktioniert und ich habe den Aufräumassistenten zum Laufen gebracht: github.com/hfiref0x/SXSEXP
Ale
Scheint, dass dies seit 2018 nicht mehr funktioniert. Ich habe mehrere Unterordner (amd64, x86, wow64) im WinSxS-Verzeichnis mit mehreren Kopien von cleanmgr.exe / cleanmgr.mui und keine der Kombinationen scheint zu funktionieren - die EXE-Datei wird nur so schnell beendet wie es läuft. Ich musste auch das von @Ale erwähnte SXSEXP-Tool verwenden, um die cleanmgr.exe sogar ausführbar zu machen.
Ian Kemp
funktioniert nur teilweise (keine Option "Systemdateien bereinigen")
jitbit