WSUS-Datenbank und Updates auf anderes Verzeichnis umziehen


    Tags: ,

    Einstellung für das Content-VerzeichnisZu den Wartungs­aufgaben bei den Windows Server Update Services (WSUS) kann gehören, dass die herunter­gela­denen Updates oder die SUSDB-Daten­bank in ein anderes Ver­zeichnis um­ziehen müssen. Dies lässt sich voll­ständig von der Kommando­zeile erledigen, so dass dieses Vorgehen auch unter Server Core klappt.

    Um die ständig wachsenden Datenmengen auf einem WSUS-Server in der Griff zu bekommen, findet sich in der Konsole ein Assistent zur Server-Bereinigung. Wenn etwa durch eine ungeschickte Konfiguration eine Vielzahl von Updates herunter­geladen wurde, gelingt es diesem Tool aber nicht, gründlich aufzu­räumen und ausreichend Speicherplatz zurück­zugewinnen.

    Heruntergeladene Updates löschen

    In diesem Fall ist es meistens einfacher, die vorhandenen Downloads zu löschen. Dazu hält man die Dienste für WSUS und IIS mit diesem PowerShell-Befehl an:

    Stop-Service WSUSService, W3SVC

    Nach dem Entfernen des gesamten Verzeichnis­baums unterhalb des Content-Ordners startet man die Dienste wieder mit

    Start-Service WSUSService, W3SVC

    WSUS beginnt danach, die aktuell benötigten Updates erneut herunterzuladen. Ansonsten hilft ihm ein

    wsusutil.exe reset

    auf die Sprünge.

    Content-Verzeichnis verschieben

    Wenn sich jedoch gezeigt hat, dass der Speicherort für die Updates nicht genug freien Platz aufweist, dann kann man ihn auf ein anderes Verzeichnis um­schwenken. Dies lässt sich mit dem Dienst­programm wsutil erledigen:

    wsusutil.exe postinstall CONTENT_DIR=D:\WSUS

    Hier würde d:\wsus als neues Verzeichnis für die Updates festgelegt, wenn WSUS die WID als Datenbank verwendet.

    Content-Verzeichnis für heruntergeladene Updates ändern

    Setzt man aber einen SQL Server ein, dann muss man diesen in der Befehlszeile zusätzlich angeben:

    wsusutil.exe postinstall CONTENT_DIR=D:\WSUS SQL_INSTANCE_NAME="sql.contoso.de"

    In diesem Beispiel läuft SUSDB auf der Default Instance, deshalb reicht die Angabe des Hosts, ansonsten müsste man hier Server\Instance einsetzen. Anschließend kann man das alte Content-Verzeichnis samt Inhalt entfernen.

    WID-Datenbank an einen anderen Speicherort verschieben

    Lässt man den Best Practices Analyzer über eine Standard­installation von WSUS laufen, dann beschwert sich dieser darüber, wenn die Datenbank auf dem System­laufwerk liegt. Dabei bietet das Setup von WSUS gar keine Auswahl­möglichkeit für einen alternativen Speicherort, wenn man die interne Datenbank verwendet.

    Der Best Practices Analyzer empfiehlt, die WSUS-Datenbank nicht auf dem Systemlaufwerk zu speichern.

    Möchte man sich an diese Empfehlung halten, dann kann man die Datenbank auch nachträglich noch auf ein anderes Laufwerk verschieben. Dazu beendet man wieder, wie oben beschrieben, die Dienste IIS und WSUS:

    Stop-Service WSUSService, W3SVC

    Anschließend benötigt man ein Management-Tool, um die Datenbank abzuhängen. Dafür eignet sich das SQL Server Management Studio, das aber unter Server Core nicht läuft und mit dem sich eine WID-Datenbank auch remote nicht verwalten lässt. Daher beruht das folgende Beispiel auf dem CLI-Programm sqlcmd.exe.

    Falls es auf dem Server noch nicht vorhanden ist, installiert man dort zuerst den ODBC-Treiber für SQL Server und danach die Command Line Utilities für SQL Server.

    Anschließend führt man folgenden Befehl aus:

    sqlcmd -E -S np:\\.\pipe\MICROSOFT##WID\tsql\query -Q "sp_detach_db 'SUSDB'"

    Im nächsten Schritt kopiert man die Dateien SUSDB.mdf und SUSDB_log.ldf von ihrem bisherigen (standardmäßig ist das %systemroot%\WID\data) an den neuen Speicherort. Nun kann man sie von dort wieder mit der Datenbank verbinden:

    sqlcmd.exe -E -S np:\\.\pipe\MICROSOFT##WID\tsql\query -Q "sp_attach_db @dbname=N'SUSDB',@filename1=N'D:\DB\SUSDB.mdf', @filename2=N'D:\DB\SUSDB_log.ldf'"

    In diesem Beispiel wäre d:\db das neue Verzeichnis für SUSDB.

    SUSDB mit sqlcmd abhängen und von einem neuen Ort wieder verbinden.

    Zum Schluss startet man wieder die vorhin gestoppten Dienste:

    Start-Service WSUSService, W3SVC

    Keine Kommentare