sammy65
Goto Top

WSUS 4 mit Server 2016 immer wieder Fehler "Serverknoten zurücksetzen"

Hallo miteinander,

ich habe noch ein kleines Problemchen mit meinem neuen WSUS 4 (läuft auf Server 2016)

Der Server hat 16GB RAM

Immer wieder wenn ich z. b. den SycVerlauf aufrufen will, kommt nach einiger Zeit "Serverknoten zurücksetzen".
Ich habe in den IIS Einstellungen bereits das Anforderungslimit für den WSUS auf 8GB gestellt.
Ich habe auch den Patch KB4053579 installiert, da ich nach entsprechender Suche in google darauf gestossen bin

Was kann ich noch tun?, Es ist zwar besser geworden, aber der Fehler tritt immer wieder auf.


lg
Thomas

Content-Key: 366736

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

Printed on: April 26, 2024 at 17:04 o'clock

Member: Archeon
Archeon Mar 02, 2018 at 06:50:26 (UTC)
Goto Top
Guten morgen,

das kann verschiedene Gründe haben, hast du mal eine Bereinigung der Datenbank durchgeführt?
Was steht denn in den Logs, da müsste es ja auch noch Einträge geben.

Gruß
Member: sammy65
sammy65 Mar 02, 2018 updated at 09:05:38 (UTC)
Goto Top
Hi,

ich habe folgende Meldungen gefunden.

#12072
Es kann nicht auf das WSUS-Inhaltsverzeichnis zugegriffen werden.
System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (503) Server nicht verfügbar.
bei System.Net.HttpWebRequest.GetResponse()
bei Microsoft.UpdateServices.Internal.HealthMonitoring.HmtWebServices.CheckContentDirWebAccess(EventLoggingType type, HealthEventLogger logger)

und

#12052
Der DSS-Authentifizierungs-Webdienst ist nicht funktionsfähig

#12042
Der SimpleAuth-Webdienst ist nicht funktionsfähig

usw.....

Ich habe den eindruck dass die Verbindung zum IIS weg ist.....

Wenn ich den kompletten Server neu starte geht´s wieder......


Gruß
Thomas
Member: Ausserwoeger
Ausserwoeger Mar 02, 2018 updated at 10:12:18 (UTC)
Goto Top
Hi

Schau mal ob der WSUS Anwendungspool abgeschaltet wird. und kontrollier nochmal deine Einstellung von 8GB!! Nicht das du hier eine 0 zu wenig eingegeben hast face-smile

PS: Ist auf deinem Server .net Framework 4.7 installiert ?

LG
Member: sammy65
sammy65 Mar 02, 2018 at 10:13:32 (UTC)
Goto Top
Hi,

ich habe diesen Wert eingetragen: 8000000

lg
Member: Ausserwoeger
Ausserwoeger Mar 02, 2018 at 10:17:40 (UTC)
Goto Top
Zitat von @sammy65:

Hi,

ich habe diesen Wert eingetragen: 8000000

lg

Das passt ! .net framework 4.7 ist nicht installiert ?
Falls doch :

1. IIS-Manager auf dem WSUS Server öffnen
2. Anwendungspools\WsusPool öffnen
3. Pipelinemodus von Klassisch auf Integriert ändern und den Anwendungspool sofort neustarten

LG
Member: sammy65
sammy65 Mar 02, 2018 updated at 10:37:15 (UTC)
Goto Top
.net framework 4.7 war nicht drauf,
ich installiere gerade nach.....


muss ich die 3 Punkte trotzdem ausführen?
Übrigens war der Pipeline Modus bereits auf integrated

lg
Member: Ausserwoeger
Ausserwoeger Mar 02, 2018 updated at 10:52:38 (UTC)
Goto Top
Zitat von @sammy65:

.net framework 4.7 war nicht drauf,
ich installiere gerade nach.....


muss ich die 3 Punkte trotzdem ausführen?
Übrigens war der Pipeline Modus bereits auf integrated

lg

Wenn du .net Framework 4.7 drauf gibst ja ! Musst du aber nicht wenns nicht drauf ist brauchst das auch nicht machen.

PS: Du könntest auch eine Bereinigung des WSUS machen. Hier ein PS Script dazu:

Add-Type -Path "C:\Program Files\Update Services\API\Microsoft.UpdateServices.Administration.dll"

$UseSSL = $False

$PortNumber = 8530

$Server = "Servername"

$WSUSDBServer = "np:\\.\pipe\MICROSOFT##WID\tsql\query"

$ReportLocation = "C:\WSUS_Cleanup\WSUS_CleanupReport.html"

$DBScriptLocation = "C:\WSUS_Cleanup\WSUS_DBMaintenance.sql"

$DBReportLocation = "C:\WSUS_Cleanup\WSUS_DBMaintenanceReport.txt"

$SMTPServer = "mail.domain.at”

$SMTPPort = 25

$To = "betreff <email@domain.at>"

$From = "betreff <email@domain.at>"

$WSUSConnection = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer($Server,$UseSSL,$PortNumber)

$UTF8 = New-Object System.Text.utf8encoding


#Clean Up Scope

$CleanupScopeObject = New-Object Microsoft.UpdateServices.Administration.CleanupScope

$CleanupScopeObject.CleanupObsoleteComputers = $True

$CleanupScopeObject.CleanupObsoleteUpdates = $True

$CleanupScopeObject.CleanupUnneededContentFiles = $True

$CleanupScopeObject.CompressUpdates = $True

$CleanupScopeObject.DeclineExpiredUpdates = $True

$CleanupScopeObject.DeclineSupersededUpdates = $True

$CleanupTASK = $WSUSConnection.GetCleanupManager()

$Results = $CleanupTASK.PerformCleanup($CleanupScopeObject)

$DObject = New-Object PSObject

$DObject | Add-Member -MemberType NoteProperty -Name "Abgelehnte ersetzte Updates" -Value $Results.SupersededUpdatesDeclined

$DObject | Add-Member -MemberType NoteProperty -Name "Abgelehnte abgelaufene Updates" -Value $Results.ExpiredUpdatesDeclined

$DObject | Add-Member -MemberType NoteProperty -Name "Gelöschte veraltete Updates" -Value $Results.ObsoleteUpdatesDeleted

$DObject | Add-Member -MemberType NoteProperty -Name "Komprimierte Updates" -Value $Results.UpdatesCompressed

$DObject | Add-Member -MemberType NoteProperty -Name "Gelöschte veraltete Computer" -Value $Results.ObsoleteComputersDeleted

$DObject | Add-Member -MemberType NoteProperty -Name "Freigegebener Speicherplatz" -Value $Results.DiskSpaceFreed

#HTML style

$HeadStyle = "<style>"

$HeadStyle = $HeadStyle + "BODY{background-color:white;}"

$HeadStyle = $HeadStyle + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}"

$HeadStyle = $HeadStyle + "TH{border-width: 1px;padding: 0px;border-style: solid;border-color: black;background-color:thistle}"

$HeadStyle = $HeadStyle + "TD{border-width: 1px;padding: 0px;border-style: solid;border-color: black;background-color:palegoldenrod}"

$HeadStyle = $HeadStyle + "</style>"

$Date = Get-Date -Format "dd/MM/yyyy HH:mm"

$DObject | ConvertTo-Html -Head $HeadStyle -Body "<h2>$($ENV:ComputerName): WSUS Cleanup Report: $date</h2>" | Out-File $ReportLocation -Force

$Body = (Get-Content $ReportLocation | out-string )

Send-MailMessage -To $To -from $FROM -subject "$($ENV:ComputerName): WSUS Cleanup Report" -smtpServer $SMTPServer -Body $Body -BodyAsHtml -Port $SMTPPort -Encoding $UTF8


  1. WSUS Database Maintenance

sqlcmd -S $WSUSDBServer -d SUSDB -i $DBScriptLocation -o $DBReportLocation

$Body = (Get-Content $DBReportLocation | out-string )

Send-MailMessage -To $To -from $FROM -subject "$($ENV:ComputerName): WSUS Database Maintenance Report" -smtpServer $SMTPServer -Body $Body -Port $SMTPPort -Encoding $UTF8

________________________________________________________________________

Wenn dein WSUS noch nicht alt ist kann ihn auch die erstsyncronisierung überlasten. Das gibt es schon seit es wsus gibt.

1. Die Konsole kommt nicht klar, wenn du so viele Updates auf einmal lädst.
2. Gehe auf Optionen -> Klassifikationen
3. Hake alles ab, dann den ersten Punkt (z.B. Critical Updates) anhaken.
4. auf OK -> und dann unter Synchronizations -> Synchronize Now
5. Dann einen Haken nach dem anderen mit dem selben Verfahren setzen
Driver Sets, und Driver sind unzählige Datenbankeinträge (Würde ich, wenn es nicht unbedingt benötigt wird, abhaken)

LG
Member: sammy65
sammy65 Mar 02, 2018 updated at 10:53:57 (UTC)
Goto Top
OK,

was ich nur nicht verstehe, ist dass ich den WSUS erst am Montag aufgesetzt habe und die DB noch gar nicht so groß sein kann.

Ich habe übrigens 130 Clients daran hängen....

Stimmt bei der erstsynchronisierung hat er 22.000 Einträge geladen.....

lg
Member: Ausserwoeger
Solution Ausserwoeger Mar 02, 2018 updated at 11:00:41 (UTC)
Goto Top
Zitat von @sammy65:

OK,

was ich nur nicht verstehe, ist dass ich den WSUS erst am Montag aufgesetzt habe und die DB noch gar nicht so groß sein kann.

Ich habe übrigens 130 Clients daran hängen....

lg

Hi

Das Problem liegt hier nicht an den clients die dran hängen. Ich hab auch grad wieder einen installiert und der hat gleich mal 323 GB Updates heruntergeladen ! davon 184 GB ersetzte Updates. Die musst du ablehnen und wie oben beschrieben punkt für punkt durchgehen.

1. Die Konsole kommt nicht klar, wenn du so viele Updates auf einmal lädst.
2. Gehe auf Optionen -> Klassifikationen
3. Hake alles ab, dann den ersten Punkt (z.B. Critical Updates) anhaken.
4. auf OK -> und dann unter Synchronizations -> Synchronize Now
5. Dann einen Haken nach dem anderen mit dem selben Verfahren setzen
Driver Sets, und Driver sind unzählige Datenbankeinträge (Würde ich, wenn es nicht unbedingt benötigt wird, abhaken)

PS: Wenn du dir im WSUS die spalte Ersatz einblendest haben Ersetzte Updates ein anderes Symbol.

LG
Member: sammy65
sammy65 Mar 02, 2018 at 10:59:14 (UTC)
Goto Top
Das Script trotzdem ausführen?


Muss ich hier noch meinen Servernamen eintragen?
$Server = "Servername"
Member: Ausserwoeger
Ausserwoeger Mar 02, 2018 updated at 11:06:52 (UTC)
Goto Top
Zitat von @sammy65:

Das Script trotzdem ausführen?


Muss ich hier noch meinen Servernamen eintragen?
$Server = "Servername"

Ja musst du und wenn du per mail ein ergebnis bekommen möchtest weiter unten den SMTP Server und absender und empfänger mailadresse.

Du kannst das Script auch als Task laufen lassen 1 mal pro woche dann ist dein wsus immer klein face-smile

PS: Ich hab hier auch noch ein Script zum estellen des Tasks

$A = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument ‘-ExecutionPolicy ByPass -File C:\WSUS_CleanupScript.ps1‘

$T = New-ScheduledTaskTrigger -WeeksInterval 1 -DaysOfWeek Sunday -At "05:30" -Weekly

Register-ScheduledTask -User "NT AUTHORITY\SYSTEM" -TaskName ‘WSUS Cleanup’ -Trigger $T -Action $A

PPS: Schönes Wochenende


LG
Member: sammy65
sammy65 Mar 05, 2018 at 06:45:04 (UTC)
Goto Top
Hi,
kann ich das PowerShell Script auch über den Windows Taskplaner laufen lassen?

lg
Member: Ausserwoeger
Ausserwoeger Mar 05, 2018 at 07:10:19 (UTC)
Goto Top
Zitat von @sammy65:

Hi,
kann ich das PowerShell Script auch über den Windows Taskplaner laufen lassen?

lg

Ja ! kannst du ich habe dir auch ein Script zum anleden des Tasks geschrieben. du musst dein Script nur auf C legen und WSUS_CleanupScript.ps1 nennen.

Du kannst dir dann den erstellten Task anschauen und wenn du möchtest anpassen. du kannst aber auch selbst einen Manuell anlegen.

LG Andy
Member: sammy65
sammy65 Mar 05, 2018 updated at 07:34:05 (UTC)
Goto Top
Hi,

dankeschön, aber jetzt muss ich trotzdem nochmals nerven.....

Das Powershell Script lege ich in besagtem Verzeichnis ab und benenne es entsprechend.

Das Script zum Anlegen des Tasks ist eine Separate DAtei und das Verpacke ich in eine Batch, oder? und dieses Rufe ich über den W

Windows Taskplaner auf?

Das Script einfach kopieren und die Änderungen vornehmen:

Muss dieser Eintrag raus?

1. WSUS Database Maintenance


LG
Member: Ausserwoeger
Ausserwoeger Mar 05, 2018 at 08:54:21 (UTC)
Goto Top
Zitat von @sammy65:

Hi,

dankeschön, aber jetzt muss ich trotzdem nochmals nerven.....

Das Powershell Script lege ich in besagtem Verzeichnis ab und benenne es entsprechend.

Das Script zum Anlegen des Tasks ist eine Separate DAtei und das Verpacke ich in eine Batch, oder? und dieses Rufe ich über den W

Windows Taskplaner auf?

Das Script einfach kopieren und die Änderungen vornehmen:

Muss dieser Eintrag raus?

1. WSUS Database Maintenance


LG

Hi

Nein du öffnest eine Powershell Console als Admin und kopierst die zeilen in hinein. drückst Enter und das wars.
Wenn du dann die Aufgabenplanung öffnest gibt es eine Aufgabe mit dem NAMEN WSUS_CleanupScript.

LG
Member: sammy65
sammy65 Mar 05, 2018 at 10:04:47 (UTC)
Goto Top
Hi,

wenn ich das Script manuell ausführe erhalte ich folgende Fehlermeldung.....

PS C:\batch> C:\batch\WSUS_CleanupScript.ps1
WSUS : Die Benennung "WSUS" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die   
Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.
In C:\batch\WSUS_CleanupScript.ps1:89 Zeichen:5
+     WSUS Database Maintenance
+     ~~~~
    + CategoryInfo          : ObjectNotFound: (WSUS:String) , CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
sqlcmd : Die Benennung "sqlcmd" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die   
Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.
In C:\batch\WSUS_CleanupScript.ps1:92 Zeichen:1
+ sqlcmd -S $WSUSDBServer -d SUSDB -i $DBScriptLocation -o $DBReportLoc ...
+ ~~~~~~
    + CategoryInfo          : ObjectNotFound: (sqlcmd:String) , CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
Get-Content : Der Pfad "C:\WSUS_Cleanup\WSUS_DBMaintenanceReport.txt" kann nicht gefunden werden, da er nicht vorhanden ist.  
In C:\batch\WSUS_CleanupScript.ps1:94 Zeichen:10
+ $Body = (Get-Content $DBReportLocation | out-string )
+          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\WSUS_Cleanup...nanceReport.txt:String) [Get-Content], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand
 
Send-MailMessage : Das Argument für den Parameter "Body" kann nicht überprüft werden. Das Argument ist NULL oder leer. Geben Sie ein Argument an, das nicht NULL oder   
leer ist, und führen Sie den Befehl erneut aus.
In C:\batch\WSUS_CleanupScript.ps1:96 Zeichen:134
+ ... abase Maintenance Report" -smtpServer $SMTPServer -Body $Body -Port $ ...  
+                                                             ~~~~~
    + CategoryInfo          : InvalidData: (:) [Send-MailMessage], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.SendMailMessage
 

PS C:\batch>


LG
Member: Ausserwoeger
Ausserwoeger Mar 05, 2018 updated at 13:33:06 (UTC)
Goto Top
Hallo Sammy

PowerShell ist sehr wichtig geworden face-smile !
ein Powershell Script startet man mit .\ !

Also Powershell öffen auf den ordner gehen in dem das skipt liegt und .\skriptname eingeben.

Ich meinte auserdem zum erstellen des tasks folgende Befehle:

$A = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument ‘-ExecutionPolicy ByPass -File C:\WSUS_CleanupScript.ps1‘

$T = New-ScheduledTaskTrigger -WeeksInterval 1 -DaysOfWeek Sunday -At "05:30" -Weekly

Register-ScheduledTask -User "NT AUTHORITY\SYSTEM" -TaskName ‘WSUS Cleanup’ -Trigger $T -Action $A

PS: Um in der Powershell console Scrits ausführen zu können musst du das zulassen.
Du kannst hier folgenden befehl verwenden: Set-ExecutionPolicy Unrestricted

LG
Member: sammy65
sammy65 Mar 05, 2018 at 13:57:57 (UTC)
Goto Top
Hi,

Dankeschön....
hat geklappt......

Ich berichte weiter......

LG