Normales Thema Powershell "Get-Updates()" - FM: "The operation has timed out" (Gelesen: 2053 mal)
MarkusKulage
WSUS Neuling
Offline


I love WSUS!

Beiträge: 5
Mitglied seit: 21.04.21
Powershell "Get-Updates()" - FM: "The operation has timed out"
21.04.21 um 09:05:43
Beitrag drucken  
Hallo WSUS Community,

ich habe hier ein Problem bei dem aktuell nicht weiterkomme und hoffe das Ihr mir weiterhelfen könnt, den aktuell habe ich keine Ideen mehr.

Problembeschreibung:
Ich würde gerne über Powershell ein Skript entwickeln welche diverse Themen automatisiert durchführt z.B. Patches freigeben, superseeded patches ablehen den Servercleanup durchführen etc.
Hierzu habe ich angefangen ein Skript zu schreiben und scheitere an dem Befehl "Get-Updates()" da dieser immer aus einen Timeout läuft.

Hier der Powershellcode welche ich verwende:
Code
$WSUSName = 'Servername + FQDN'
$SSLVerbindung = $True
$PortNummer = 8531
[void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
$WSUS = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer($WSUSName, $SSLVerbindung, $PortNummer)
$WSUS.GetUpdates() | where {$_.HasLicenseAgreement -eq $true}
 



Bei der letzten Zeile kommt die Fehlermeldung:
Code
Exception calling "GetUpdates" with "0" argument(s): "The operation has timed out"
At line:6 char:1
+ $WSUS.GetUpdates() | where {$_.HasLicenseAgreement -eq $true}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : WebException

 



Ich weis nicht ob es mit dem Problem zusammenhängt aber wenn das Skript auf den Timeout läuft und ich während dessen die WSUS Console auf habe zeigt die WSUS konsole ebenfalls an, dass diese ein "Connection error" hat. Hier die Fehlermeldung welche in der Console angezeigt wird und in die Zwischenablage kopiert werden kann:

Code
The WSUS administration console was unable to connect to the WSUS Server via the remote API.

Verify that the Update Services service, IIS and SQL are running on the server. If the problem persists, try restarting IIS, SQL, and the Update Services Service.

System.Net.WebException -- The operation has timed out

Source
System.Web.Services

Stack Trace:
   at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)
   at Microsoft.UpdateServices.Internal.DatabaseAccess.ApiRemotingCompressionProxy.GetWebResponse(WebRequest webRequest)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at Microsoft.UpdateServices.Internal.ApiRemoting.ExecuteSPSearchUpdates(String updateScopeXml, String preferredCulture, Int32 publicationState)
   at Microsoft.UpdateServices.Internal.DatabaseAccess.AdminDataAccessProxy.ExecuteSPSearchUpdates(String updateScopeXml, String preferredCulture, ExtendedPublicationState publicationState)
   at Microsoft.UpdateServices.Internal.BaseApi.Update.SearchUpdates(UpdateScope searchScope, ExtendedPublicationState publicationState, UpdateServer updateServer)
   at Microsoft.UpdateServices.UI.AdminApiAccess.UpdateManager.GetUpdates(ExtendedUpdateScope filter)
   at Microsoft.UpdateServices.UI.SnapIn.Pages.UpdatesListPage.refreshUpdatesTimer_TimerCallback(Object state)

 


Wenn ich die Konsole hiernach neustarte kann ich "normal" weiter Arbeiten.


Kurze Beschreibung unserer WSUS-Umgebung:
Wir haben insgesamt 9 WSUS Server wovon aber 8 Satelliten sind
Alle Server haben als OS Windows Server 2016 Patchstand März 2021
Alle Server sind über VMware 6.5 virtuallisiert
Der Masterserver hat aktuell 8 vCPU's und 32GB vRAM
Der Sync zwischen den Mastern und den Satelliten erfolgt 4 mal am Tag
Der Master synced sich einmal am Tag mit MS
Die Datenbank des Master wird auf einem SQL Server bereitgestellt
Es werden aktuell ca. 500 Client's / Server betrieben
Wir haben aktuell ca. 32500 Patche im WSUS

Problemlösungsansätze
Ich habe schon vieles Versucht auch in Kombination aber leider keine Lösung gefunden. Lediglich die "Performance" der WSUS MMC wurde verbessert
Reduzierung der Produkte und Klassifizierungen
Reduzierung er Update Dateien und Sprachen
Wechsel zwischen WID und SQL Server
Mehr vCPU und vRAM
Anpassung folgender IIS Werte im Applikationpool des WSUS:
Warteschlangenlänge
Leerlaufzeit (Minuten)
Ping aktiviert
Private Memory Limit (KB)
Reguläres Zeitintervall (Minuten)


Ich hoffe, dass ihr noch Ideen habt, den aktuell habe ich keine Ideen mehr und Google Hilfe leider auch nicht mehr weiter.

Ich danke euch!
Grüße
Markus Kulage
  
Zum Seitenanfang
 
Sunny
Microsoft MVP
*****
Offline



Beiträge: 15134
Mitglied seit: 11.02.07
Geschlecht: männlich
Re: Powershell "Get-Updates()" - FM: "The operation has timed out"
Antwort #1 - 21.04.21 um 16:07:15
Beitrag drucken  
Du musst unbedingt die SUSDB täglich reindizieren lassen, auf allen WSUS Servern. Ebenfalls die Statistiken täglich aktualisieren. Am besten im großen SQL per Wartungstask, auf der Express Variante musst Du alles per *.sql Datei von Extern aus machen. Nicht schön, aber geht auch.

Dann solltest Du auch nicht mehr in einen Timeout laufen.

Noch ein Tipp für die erste Zeile in deinem Script:

Code
[String]$WSUSServer = ([system.net.dns]::GetHostByName('localhost')).hostname
 



So ist es universeller einsetzbar. Zwinkernd

Zum Ablehnen haben wir hier etwas, das musst Du allerdings für dich anpassen und ausführlich testen, dann hilft es ganz sicher:
(Du musst Dich Einloggen oder Registrieren um Multimediadateien oder Links zu sehen).

Und noch ein sehr wichtiger Hinweis für die Datenbank: (Du musst Dich Einloggen oder Registrieren um Multimediadateien oder Links zu sehen).

Wenn Du auf dem SQL Server ein aktuelles Management Studio installiert hast, kannst Du die fehlenden Indexe auslesen. Management Studio starten, an der Instanz anmelden, Rechtsklick auf die Instanz > Berichte > Standardberichte > Leistungsdashboard. Auf diesem Dashboard ist ganz unten rechts ein Link zu Fehlende Indizes. Die Befehle in der Spalte Vorgeschlagener Index kannst Du 1zu1 übernehmen und in einer Abfrage ausführen lassen. Das hat bei mir, in einer wesentlich kleineren Umgebung, einen großen Schub gebracht. Regelmäßig an der Stelle nachsehen ob es etwas neues gibt, schon bist Du save.

Wenn Du in T-SQL einigermaßen fit bist, dann schau dir dieses Script an: (Du musst Dich Einloggen oder Registrieren um Multimediadateien oder Links zu sehen). Den Titel ausblenden, einfach nur das betrachten was gemacht wird. Das kann dir auch helfen, alte, nicht mehr benötigte Updates aus der SUSDB zu kicken.
  
Zum Seitenanfang
 
MarkusKulage
WSUS Neuling
Offline


I love WSUS!

Beiträge: 5
Mitglied seit: 21.04.21
Re: Powershell "Get-Updates()" - FM: "The operation has timed out"
Antwort #2 - 22.04.21 um 09:00:37
Beitrag drucken  
Hallo Sunny,

Vielen Dank für deine Hilfe.
Ich habe schon gelesen, dass die SUSDB reindizieren und -organisiert werden soll. Wir haben auf unserem SQL eine wöchentliche Wartung welche dieses durchführt. Ich war der Meinung, dass dieses ausreichend ist.
Nach deinem Hinweis habe ich dieses allerdings einmal das Skript von: " (Du musst Dich Einloggen oder Registrieren um Multimediadateien oder Links zu sehen)." Abschnitt "WSUS Datenbank reorganisieren" durchgeführt und siehe da, die Updates werden wieder angezeigt und es gibt nochmals einen ordentlichen Performancesschub.

Die anderen Tipps nehme ich auf und und baue diese sofern erforderlich ins Skript ein.

Ich bedanke mich nochmals bei dir Sunny!

Grüße
Markus






  
Zum Seitenanfang
 
Sunny
Microsoft MVP
*****
Offline



Beiträge: 15134
Mitglied seit: 11.02.07
Geschlecht: männlich
Re: Powershell "Get-Updates()" - FM: "The operation has timed out"
Antwort #3 - 22.04.21 um 10:10:08
Beitrag drucken  
Das aus tast-of-it ist nichts anderes als die Reindizierung wie von mir vorgeschlagen. Die sollte täglich laufen, am besten als Wartungstask auf dem SQL Server.

Das meiste hat bei mir allerdings die Sache mit Create Index gebracht und bei dir sollte das nochmal einen Schub bringen.

Weiters darf man die Sync Protokolle nicht vergessen, täglich oder wöchentlich löschen lassen: (Du musst Dich Einloggen oder Registrieren um Multimediadateien oder Links zu sehen).

BTW: Das Verkleinern der Datenbank kannst Du dir sparen, das ist wie Augen zumachen und sagen ich bin unsichtbar. Flüssiger als Wasser.
  
Zum Seitenanfang
 
Bookmarks: Facebook Google Google+ Linked in Twitter Yahoo
 



Nutzungsbedingungen | Datenschutz
Kontakt | RSS | Feedback | Impressum
Facebook | News einsenden