Ich hatte neulich den Fall, dass die WSUS Datenbank auf einem Windows 2012 R2 Server korrupt war und daher der WSUS Dienst nicht mehr funktionierte.

Die naheliegende Idee, WSUS Server deinstallieren und wieder neu zu installieren brachte kein Erfolg, da die notwendige Datenbank

C:\Windows\WID\Data\SUSDB.mdf

durch die Deinstallation NICHT entfernt wird. D.h. nach der Neuinstallation des WSUS ist man an der gleichen Stelle.

Wenn man jetzt die o.g. Datebank einfach löscht, so bekommt man bei der Neuinstallation Fehlermeldungen.

In dem dazugehörigen Logfile steht dann auch die Ursache:

2016-06-02 11:37:26  Configuring WID database...
2016-06-02 11:37:26  Configuring the database...
2016-06-02 11:37:26  Establishing DB connection...
2016-06-02 11:37:26  Checking to see if database exists...
2016-06-02 11:37:26  Database exists
2016-06-02 11:37:26  Switching database to single user mode...
2016-06-02 11:37:27  System.Data.SqlClient.SqlException (0x80131904): Die physische Datei 'C:\Windows\WID\Data\SUSDB.mdf' kann nicht ge”ffnet werden. Betriebssystemfehler 2: '2(Das System kann die angegebene Datei nicht finden.)'.
Die physische Datei 'C:\Windows\WID\Data\SUSDB.mdf' kann nicht ge”ffnet werden. Betriebssystemfehler 2: '2(Das System kann die angegebene Datei nicht finden.)'.
Die SUSDB-Datenbank konnte nicht neu gestartet werden. Der vorherige Status wird wiederhergestellt.
Fehler bei der ALTER DATABASE-Anweisung.
Dateiaktivierungsfehler. Der physische Dateiname 'C:\Windows\WID\Data\SUSDB_log.ldf' ist m”glicherweise falsch.
Dateiaktivierungsfehler. Der physische Dateiname 'C:\Windows\WID\Data\SUSDB_log.ldf' ist m”glicherweise falsch.
   bei Microsoft.UpdateServices.DatabaseAccess.DBConnection.DrainObsoleteConnections(SqlException e)
   bei Microsoft.UpdateServices.DatabaseAccess.DBConnection.ExecuteCommandNoResult()
   bei Microsoft.UpdateServices.Administration.ConfigureDB.ConnectToDB()
   bei Microsoft.UpdateServices.Administration.ConfigureDB.Configure()
   bei Microsoft.UpdateServices.Administration.ConfigureDB.Run(String instanceName, Action`1 logWriter, Boolean contentLocal)
   bei Microsoft.UpdateServices.Administration.PostInstall.Run()
   bei Microsoft.UpdateServices.Administration.PostInstall.Execute(String[] arguments)
ClientConnectionId:5c9b6d98-4cbe-47eb-8465-f7fde71f8c4f
Fehlernummer (Error Number):5120,Status (State):101,Klasse (Class):16
Schwerwiegender Fehler: Die physische Datei 'C:\Windows\WID\Data\SUSDB.mdf' kann nicht ge”ffnet werden. Betriebssystemfehler 2: '2(Das System kann die angegebene Datei nicht finden.)'.
Die physische Datei 'C:\Windows\WID\Data\SUSDB.mdf' kann nicht ge”ffnet werden. Betriebssystemfehler 2: '2(Das System kann die angegebene Datei nicht finden.)'.
Die SUSDB-Datenbank konnte nicht neu gestartet werden. Der vorherige Status wird wiederhergestellt.
Fehler bei der ALTER DATABASE-Anweisung.
Dateiaktivierungsfehler. Der physische Dateiname 'C:\Windows\WID\Data\SUSDB_log.ldf' ist m”glicherweise falsch.
Dateiaktivierungsfehler. Der physische Dateiname 'C:\Windows\WID\Data\SUSDB_log.ldf' ist m”glicherweise falsch.

D.h. die eigentliche Konfiguration für den WSUS wurde wieder übernommen und jetzt fehlen natürlich die (gelöschten) Datenbanken.

Wie bekommet man also des WSUS dazu die Datenbank komplett neu zu erstellen?

  1. Man benötigt das MS SQL 2012 Management Studio Express, was man unter https://www.microsoft.com/de-de/download/details.aspx?id=29062 herunterladen kann.
  2. Das Programm installiet man und startet es explizit als Administrator!
  3. Man verbindet sich zu \\.\pipe\Microsoft##WID\tsql\query
  4. Dort löscht man dann die WSUS Datebank:

06-06-_2016_15-58-06

Wenn der Eintrag für die Datenbank gelöscht ist, startet man die WSUS Installation auf dem Server erneut – und siehe da – er startet die Komplette Konfiguration des WSUS erneut und legt die Datenbank komplett neu und sauber an!

 

Quellen:
https://en.wikipedia.org/wiki/Windows_Internal_Database