WSUS - Serverbereinigung schlägt fehl

- 28.12.2014
von Thomas Windscheif / Microlinc



Serverbereinigungsassistent läuft nicht durch
Timeout Serverbereinigung
WSUS Datenbankwartung

Die folgenden Möglichkeiten sind mit einer WSUS 3.0 SP2 Umgebung auf einem Windows Server 2008 R2 (Small Business Server 2011 Standard) getestet worden. Die vorliegende Datenbank ist Windows Internal Database.

  1. Datensicherung durchführen (!).

  2. Anschließend sollten alte oder unnötige Updates über die WSUS-Konsole abgelehnt werden.

  3. Die Basiskonfiguration welche Produkte synchronisiert werden sollte überprüft werden:
    • Sind englisch-sprachige Updates wirklich nötig?

    • Welche Art von Updates werden benötigt (z. B. Treiber)?

    • Bestimmte Produktupdates wie Exchange etc. sollte man besser selber installieren und auch selber aufrufen, diese Updates kann man also auch entfernen

  4. Nur die Betriebssysteme und Komponenten auswählen die tatsächlich eingesetzt werden.

  5. Den Serverbereinigungsassistenten starten und jeden der anderen Punkte außer dem ersten jeweils einzeln durchlaufen lassen.

  6. Mit wsusutil (C:\Program Files\Update Services\Tools) folgende Kommandos auführen:
    • wsusutil removeinactiveapprovals
      INFO:Dieser Befehl löscht Updates, die durch Änderungen an den ausgewählten Sprachpaketen nihct mehr verwendet werden.

    • wsusutil reset

    • Dieser Befehl gleicht die Daten in der Datenbank mit dem tatsächlich gespeicherten Inhalten ab. Fehlen bestimmte Dateien, werden diese nachgeladen.

  7. "iisreset" in einer privilegierten Eingabeaufforderungssitzung durchführen.

  8. Die Datenbank-Instanz neustarten (Services.msc>Windows Internal Database (MICROSOFT##SSEE))

  9. Installation des SQL Management Studios 2008 R2 - sofern nicht bereits vorhanden.

  10. Aktivierung Named Pipes für die Windows Internal Database-Instanz
    • Starten Sie den "SQL Server Configuration Manager"

    • Erweitern Sie den Punkt "SQL Server-Netzwerkkonfiguration".

    • Klicken Sie auf "Protokolle für MICROSOFT##SSEE".

    • Klicken Sie mit der rechten Maustaste auf "Named Pipes" und wählen Sie "Aktivieren".


    • Starten Sie den Dienst "Windows Internal Database (MICROSOFT##SSEE)" neu.

  11. Öffnen einer Datenbankverbindung zur WiD (Windows Internal Database) des WSUS mittels SQL Management Studio 2008 R2

    • Klicken Sie mit der rechten Maustaste auf "SQL Server Management Studio" und wählen Sie "Als Administrator ausführen".
      Sollten Sie diesen Schritt nicht befolgen, erscheint beim Versuch der Verbindung zu der Datenbank ein Authentifizierungsfehler.

    • Geben Sie als Servernamen folgenden Pfad an:
      \\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query



      Ggf. ist es nötig in den "Optionen" unter "Verbindungseigenschaften" als "Netzwerkprotokoll" "Named Pipes" auszuwählen.

    • Erweitern Sie im Objekt-Explorer (linke Seite) den Punkt "Datenbanken"

    • Klicken Sie mit der rechten Maustaste auf "SUSDB" und wählen Sie "Neue Abfrage".


    • Auf der rechten Seite öffnet sich ein Tab in welches Sie die in den folgenden Schritten erläuterten Skripte einfügen.


  12. Ausführung des Maintenance-Skripts
    Das Wartungsskript vom Microsoft WSUS Team "reorganisiert" die Datenbank.
    Weitere Erläuterung siehe: http://technet.microsoft.com/de-de/library/dd939795(v=ws.10).aspx;

    Download des Skripts: https://gallery.technet.microsoft.com/scriptcenter/6f8cde49-5c52-4abd-9820-f1d270ddea61)

    Kopieren Sie den Code von der TechNet-Gallery in den Zwischenspeicher und fügen Sie den Code in das Abfragefenster des SQL Server Management Studios ein, klicken Sie dann auf das rote Ausrufezeichen oder drücken Sie die Taste "F5".

    Microsoft empfiehlt eine regelmäßige (monatliche) Anwendung eines Wartungsskripts um einen einwandfreien Betrieb des WSUS zu gewährleisten.

  13. Nach Durchführung des Maintenance-Skripts nochmals versuchen den Serverbereinigungsassistenten auszuführen.

  14. Sollte der Versuch wiederum fehlschlagen, öffnen Sie das SQL Management Studio 2008 R2 und führen führen Sie folgendes Skript in einer Abfrage aus:
    INFO: Die Ausführung des Skripts kann u. U. mehrere Tage dauern. Da über die Konsole ein Timeout definiert ist, schlägt die Bereinigung über den Assistenten fehl. Im SQL Management Studio ist der Timeout per Default auf unendlich gestellt.

    Prüfen Sie in den Abfrageoptionen ob unter Ausführung>ANSI der Haken bei "SET QUOTED_IDENTIFIER" gesetzt ist.








    USE susdb
    GO
    DECLARE @var1 INT
    DECLARE @msg nvarchar(100)
    CREATE TABLE #results (Col1 INT) INSERT INTO #results(Col1)
    EXEC spGetObsoleteUpdatesToCleanup
    DECLARE WC Cursor FOR SELECT Col1 FROM #results
    OPEN WC
    FETCH NEXT FROM WC INTO @var1 WHILE (@@FETCH_STATUS > -1)
    BEGIN SET @msg = 'Deleting ' + CONVERT(varchar(10), @var1) RAISERROR(@msg,0,1) WITH NOWAIT
    EXEC spDeleteUpdate @localUpdateID=@var1
    FETCH NEXT FROM WC INTO @var1
    END
    CLOSE WC
    DEALLOCATE WC
    DROP TABLE #results

    Siehe Kommentare der folgenden Seite: https://wsus.codeplex.com/releases/view/17612

  15. Anschließend nochmals Serverbereinigungsassistent ausführen.


Weitere Informationen siehe: https://social.technet.microsoft.com/Forums/windowsserver/en-US/7b12f8b2-d0e6-4f63-a98a-019356183c29/getting-past-wsus-cleanup-wizard-time-out-removing-unnecessary-updates?forum=winserverwsus
MICROL!NC - URL zum Artikel: http://microlinc.homeip.net/index.php?lev1=3&lev2=11&lev3=5&id=250 - Ausdruck vom 25.04.2024