Jeder von uns kennt das bestimmt.
Man hat ein .NET Framework UpdateSeptember Sicherheitsnews Out of Band Security Bulletin. Read more ... » und dieses will sich partout nicht installieren lassen.

Was tut man dann?

Ausgangssituation:
Installiert sind alle .NET Frameworks auf einem Windows 7 System.
Der Patch MS11-100(KB2656351) stand zur Installation an und wurde auch brav durch CM verteilt. Auf manchen Systemen bricht er aber die installation ab.

Hier kann man das Update versuchen per hand zu installieren was aber in aller regel ebenfalls fehl schlägt.
Hier nun der Weg um das Update doch noch wieder hinzubekommen.
Es kostet zwar etwas mehr Zeit als das bloße installieren des Patches, lohnt isch aber wenn man eine „saubere“ implementierung erreichen möchte.

Vorgehensweise:
Zuerst laden wir uns das strong>dotnetCleanupUtility herunter. Dieses Tool könnt ihr euch hier oder aber auch von den nachfolgenden Quellen herunterladen.

Die Zip datei entpacken wir auf dem Client unter „C.\cleanup“ Jetzt haben wir folgende möglichkeiten:

Ich nutze in diesem Beispiel jetzt die Consolen basierte Lösung.

Nach dem entpacken sehen wir das darin nur eine „cleanup_tool.exe“ enthalten ist.

Jetzt kopieren wir uns die exe per commandline erstmal auf das entsprechende System mit dem befehl:

Copy source destination  /S /H /E /R /F /C /Y

Vorab erwähnt, für die folgenden Schritte benötigen wir noch das “PSExec Tool” aus der SysinternaltSuite

Der nächste befehl der jetzt folgt:

psexec \\Zielrechner c:\cleanup_tool.exe /q:a /c:“cleanup_tool.exe /p

Dies sieht in meinem Fall entsprechend wie folgt dann aus:

psexec \\Testrechner01 c:\cleanup\cleanup_tool.exe /q:a /c:“cleanup_tool.exe /p .NET Framework 1.1“

Anzumerken ist hier allerdings, das dieses Tool nur .NET Frameworks entfernt die nicht fester bestandteil der OS Installation sind!!!

Ebenfalls eine Option ist der zusätzliche „SilentMode“ Schalter. Hierzu einfach noch ein /u mit anfügen so das dann der Befehlssatz in etwa wie folgt aussieht.

psexec \\testrechner01 c:\cleanup\cleanup_tool.exe /q:a /c:“cleanup_tool.exe /p .NET Framework 1.1 /u

Als bestätigung bzw die rückgabe des Tools erfolgt wie nicht anderst bekannt von der Console mittels der folgenden Werten.

  1. 0 – cleanup erfolgreich beendet für das entsprechende Produkt.
  2. 3010 – cleanup erfolgreich beendet für das entsprechende Produkt, benötigt aber einen reboot
  3. 1 – cleanup benötigt administrative berechtigung
  4. 2 – die benötigte cleanup.ini wurde nicht im cleanuppfad gefunden
  5. 3 – Entfernen wurde übergangen da das gewählte Produkt bestandteil der OS Installation ist
  6. 4 – Entfernen wrude übergangen da das gewählte Produkt so nicht in der cleanup.ini gefunden werden konnte
  7. 100 – Entfernen wurde gestartet aber abgebrochen da beim entfernen ein fehler aufgetreten ist
  8. 1602 – Entfernen wurde abgebrochen

Natürlich wollen wir auch uns die entsprechenden Logfiles einmal ansehen. Diese finden sich dann in:

  • %temp%\cleanup_main.log
  • %temp%\cleanup_actions.log
  • %temp%\cleanup_errors.log

Das “cleanup_main.log” enthält alle informationen plus noch einige mehr die nicht in den anderen beiden Logfiles enthalten sind.
Die beiden anderen Logfiles sind denke ich vom Namen her selbsterklärend.

Nachdem ich nun die ganzen Frameworks im idealfall erfolgreich entfernt habe, kann in meinem Fall nun der CM Server wieder seine Arbeit aufnehmen und die ganzen .NET Frameworks wieder brav verteilen und patchen.
In den meisten fällen hat dies bis dato immer funktioniert.
Allerdings übernehme ich natürlich keinerlei Haftung für diese Aktionen wenn Ihr diese ausführt ;)

So das war es dann auch schon wieder von mir.
Bis demnächst dann,

Euer Kai



mobile_120x90

Tagged on:                 

One thought on “Wie ich mit dem .NET CleanupUtillity defekte .Net Frameworks wieder herstellen kann

  • 03/17/2013 at 12:19 AM
    Permalink

    Sehr hilfreich, Danke.
    Bisher habe ich sehr oft, statt ein Update zu fahren, ein direkt neue Installation vorgenommen. Damit kann man auch schon so manche Probleme vorbeugen.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>