tiefgarage
Goto Top

WSUS Postinstallation schlägt fehl

Hallo zusammen,

wegen einer falschen Designentscheidung (Nutzung von SQL Express, damit die Begrenzung von 10 GB) und daraus resultierender Probleme haben wir uns dazu entschieden, den WSUS auf einem Windows Server 2012 R2 neu aufzusetzen.

Zur Deinstallation wurden folgende Schritte vorgenommen:
  • Entfernung der WSUS-Rolle über die GUI
  • Datenbank (SUSDB) unter SQL entfernt
  • WSUS Administration Site und WSUSPool entfernt
  • WSUS Content Folder gelöscht
  • Rechner neu gestartet

Zur Installation sind wir entsprechend folgender Anleitung vorgegangen:
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/window ...

Die Postinstallation über die GUI schlug fehl, in der mitgeloggten Datei wurde ein fehlender Konfigurationsparamenter (CONTENT DIR) angekreidet. Daher wurde der Postinstall nochmals über PowerShell durchgeführt:

PS C:\Program Files\Update Services\tools> .\WsusUtil.exe postinstall CONTENT_DIR="W:\WSUS_content"  
Die Protokolldatei befindet sich in "C:\Users\...\AppData\Local\Temp\2\tmp6B9D.tmp".  
Die Nachinstallation (PostInstall) wird gestartet.
Schwerwiegender Fehler: Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Serve
r. Der Server wurde nicht gefunden, oder auf ihn kann nicht zugegriffen werden. Überprüfen Sie, ob der Instanzname richt
ig ist und ob SQL Server Remoteverbindungen zulässt. (provider: Named Pipes Provider, error: 40 - Verbindung mit SQL Ser
ver konnte nicht geöffnet werden)

In der Temp steht folgendes:
2019-10-23 10:31:29  Postinstall started
2019-10-23 10:31:29  Detected role services: Api, UI, WidDatabase, Services
2019-10-23 10:31:29  Start: LoadSettingsFromParameters
2019-10-23 10:31:29  Content local is: True
2019-10-23 10:31:29  Content directory is: W:\WSUS_content
2019-10-23 10:31:29  SQL instname is: 
2019-10-23 10:31:29  End: LoadSettingsFromParameters
2019-10-23 10:31:29  Start: Run
2019-10-23 10:31:29  Configuring content directory...
2019-10-23 10:31:29  Configuring groups...
2019-10-23 10:31:29  Starting group configuration for WSUS Administrators...
2019-10-23 10:31:29  Found group in regsitry, attempting to use it...
2019-10-23 10:31:32  Writing group to registry...
2019-10-23 10:31:32  Finished group creation
2019-10-23 10:31:32  Starting group configuration for WSUS Reporters...
2019-10-23 10:31:32  Found group in regsitry, attempting to use it...
2019-10-23 10:31:32  Writing group to registry...
2019-10-23 10:31:32  Finished group creation
2019-10-23 10:31:32  Configuring permissions...
2019-10-23 10:31:32  Fetching content directory...
2019-10-23 10:31:32  Fetching ContentDir from registry store
2019-10-23 10:31:32  Value is W:\WSUS_content
2019-10-23 10:31:32  Fetching group SIDs...
2019-10-23 10:31:32  Fetching WsusAdministratorsSid from registry store
2019-10-23 10:31:32  Value is S-1-5-21-303225792-1555736638-3412446465-1001
2019-10-23 10:31:32  Fetching WsusReportersSid from registry store
2019-10-23 10:31:32  Value is S-1-5-21-303225792-1555736638-3412446465-1002
2019-10-23 10:31:32  Creating group principals...
2019-10-23 10:31:32  Granting directory permissions...
2019-10-23 10:31:32  Granting permissions on content directory...
2019-10-23 10:31:32  Granting registry permissions...
2019-10-23 10:31:32  Granting registry permissions...
2019-10-23 10:31:32  Granting registry permissions...
2019-10-23 10:31:32  Configuring shares...
2019-10-23 10:31:32  Configuring network shares...
2019-10-23 10:31:32  Fetching content directory...
2019-10-23 10:31:32  Fetching ContentDir from registry store
2019-10-23 10:31:32  Value is W:\WSUS_content
2019-10-23 10:31:32  Fetching WSUS admin SID...
2019-10-23 10:31:32  Fetching WsusAdministratorsSid from registry store
2019-10-23 10:31:32  Value is S-1-5-21-303225792-1555736638-3412446465-1001
2019-10-23 10:31:32  Content directory is local, creating content shares...
2019-10-23 10:31:32  Creating share "UpdateServicesPackages" with path "W:\WSUS_content\UpdateServicesPackages" and description "A network share to be used by client systems for collecting all software packages (usually applications) published on this WSUS system."  
2019-10-23 10:31:32  Creating share...
2019-10-23 10:31:32  Share successfully created
2019-10-23 10:31:32  Creating share "WsusContent" with path "W:\WSUS_content\WsusContent" and description "A network share to be used by Local Publishing to place published content on this WSUS system."  
2019-10-23 10:31:32  Creating share...
2019-10-23 10:31:32  Share successfully created
2019-10-23 10:31:32  Creating share "WSUSTemp" with path "C:\Program Files\Update Services\LogFiles\WSUSTemp" and description "A network share used by Local Publishing from a Remote WSUS Console Instance."  
2019-10-23 10:31:32  Deleting existing share...
2019-10-23 10:31:32  Creating share...
2019-10-23 10:31:32  Share successfully created
2019-10-23 10:31:32  Finished creating content shares
2019-10-23 10:31:32  Configuring WID database...
2019-10-23 10:31:32  Configuring the database...
2019-10-23 10:31:32  Establishing DB connection...
2019-10-23 10:32:32  Re-Establishing Connection to execute Multi User Query ...
2019-10-23 10:32:32  System.Data.SqlClient.SqlException (0x80131904): Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server. Der Server wurde nicht gefunden, oder auf ihn kann nicht zugegriffen werden. Überprüfen Sie, ob der Instanzname richtig ist und ob SQL Server Remoteverbindungen zulässt. (provider: Named Pipes Provider, error: 40 - Verbindung mit SQL Server konnte nicht geöffnet werden) ---> System.ComponentModel.Win32Exception (0x80004005): Das System kann die angegebene Datei nicht finden
   bei System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   bei System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   bei System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   bei System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   bei System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)
   bei System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
   bei System.Data.SqlClient.SqlConnection.Open()
   bei Microsoft.UpdateServices.DatabaseAccess.DBConnection.Connect(String connectionString)
   bei Microsoft.UpdateServices.Administration.ConfigureDB.CreateDBConnection()
   bei Microsoft.UpdateServices.Administration.ConfigureDB.TryEnsureDatabaseIsInMultiUserMode()
ClientConnectionId:00000000-0000-0000-0000-000000000000
Fehlernummer (Error Number):2,Status (State):0,Klasse (Class):20
2019-10-23 10:32:32  System.Data.SqlClient.SqlException (0x80131904): Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server. Der Server wurde nicht gefunden, oder auf ihn kann nicht zugegriffen werden. Überprüfen Sie, ob der Instanzname richtig ist und ob SQL Server Remoteverbindungen zulässt. (provider: Named Pipes Provider, error: 40 - Verbindung mit SQL Server konnte nicht geöffnet werden) ---> System.ComponentModel.Win32Exception (0x80004005): Das System kann die angegebene Datei nicht finden
   bei System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling, SqlAuthenticationProviderManager sqlAuthProviderManager)
   bei System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
   bei System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
   bei System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   bei System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   bei System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   bei System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   bei System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   bei System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   bei System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)
   bei System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
   bei System.Data.SqlClient.SqlConnection.Open()
   bei Microsoft.UpdateServices.DatabaseAccess.DBConnection.Connect(String connectionString)
   bei Microsoft.UpdateServices.Administration.ConfigureDB.CreateDBConnection()
   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:00000000-0000-0000-0000-000000000000
Fehlernummer (Error Number):2,Status (State):0,Klasse (Class):20

Was muss ich konfigurieren, damit es dem Postinstall möglich ist, eine WID Instanz + Database anzulegen und eine Verbindung aufzubauen?


Freundliche Grüße,
Tiefgarage

Content-Key: 507691

Url: https://administrator.de/contentid/507691

Ausgedruckt am: 28.03.2024 um 14:03 Uhr

Mitglied: Looser27
Looser27 23.10.2019 um 10:56:20 Uhr
Goto Top
Moin,

haben wir uns dazu entschieden, den WSUS auf einem Windows Server 2012 R2 neu aufzusetzen.

Dann macht das doch. Komplett neu....nicht versuchen zu reparieren.

Gruß

Looser
Mitglied: Tiefgarage
Tiefgarage 23.10.2019 um 11:06:16 Uhr
Goto Top
Hallo,

kannst du das bitte konkretisieren?

Die Entfernung der Rollen inklusive der Datenbanken ist der mir bekannte Weg. Radikaler wäre natürlich die Neuinstallation des kompletten Servers, das kommt bisher aber nicht in Frage.

Mit freundlichen Grüßen,
Tiefgarage
Mitglied: Looser27
Looser27 23.10.2019 um 11:27:28 Uhr
Goto Top
Moin,

Neuinstallation ist der sauberste Weg. Alles andere ist, wie Du selber gesehen hast, meist mit Problemenbehaftet.

Gruß

Looser
Mitglied: Tiefgarage
Tiefgarage 23.10.2019 aktualisiert um 12:38:37 Uhr
Goto Top
Hallo,

mich würde dennoch interessieren, ob es andere Lösungsansätze zum konkreten Fehlerfall gibt. Eine komplette Neuinstallation ist leider nicht sehr einfach, da hier noch andere Dienste laufen. Ich weiß, nicht ganz optimal.

Gruß,
Tiefgarage
Mitglied: Looser27
Looser27 23.10.2019 um 12:39:57 Uhr
Goto Top
Habt ihr virtualisiert? Dann am einfachsten den WSUS ausgliedern in separate VM. Ja, ich weiß, dass das Lizenzen kostet, aber es ist der sauberste Weg.
Mitglied: Henere
Henere 23.10.2019 um 12:40:37 Uhr
Goto Top
Servus. WSUS habe ich in einer VM. Das tut nicht weh einen weiteren dort sauber aufzusetzen.

Just my 5cents

Henere
Mitglied: Tiefgarage
Tiefgarage 23.10.2019 um 16:01:30 Uhr
Goto Top
Moin zusammen,

ich hab's nun hinbekommen. Kurze Pause gemacht und vor einer halben Stunde nochmal drangesetzt:

Nach der Deinstallation von WSUS/WID über das Rollen hinzufügen / entfernen Kontextmenü war WID wohl trotzdem weiterhin installiert. Mittels

Remove-WindowsFeature Windows-Internal-Database

habe ich das dann deinstalliert & den Server neu gestartet. Danach habe ich C:\Windows\WID gelöscht und das Feature erneut über Powershell installiert. Ich habe dann im WID-Ordner verdächtig wenig Daten gefunden und daher einen sfc /scannow gemacht. Danach war dieses Verzeichnis deutlich besser gefüllt. Anschließend habe ich die WSUS-Rolle installiert und der postinstall über

 .\WsusUtil.exe postinstall CONTENT_DIR="W:\"  


lief problemlos durch.

Viele Grüße,
Tiefgarage