Jump to content

WSUS: Update erforderlich nie auf null


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Moin zusammen

Ich kriege die Status-Zahl eines Rechners bei "Updates erforderlich" nie auf Null.

1) Gemäss meiner Analyse wurde alles korrekt eingerichtet:
- in der GPO für den Rechner bei "Internen Pfad für den Microsoft Updatedienst angeben" habe ich den WSUS-Server eingetragen (http://Servername).
- in der GPO für den Rechner bei "Clientseitige Zielzuordnung aktivieren" habe ich den Zielgruppennamen korrekt eingefüllt.
=> Der Rechner wird im WSUS also erkannt und aufgelistet.

2) Wenn ich auf dem betroffenen Rechner auf -> Windows Updates -> Nach Updates suchen -> ...sagt er dass keine Update verfügbar wären und Win. auf dem aktuellen Stand ist. Im WSUS zeigt er mir aber, erforderliche Updates = 28.

3) Wenn den Updateverlauf auf dem betr. Rechner anschaue, sind dort diverse Updates auf Status "Ausstehend", alle vom 26.08.2013. Seit diesem Datum wurde der Server aber mehrmals rebootet. Wieso sind diese Updates immer noch ausstehend?

 

4) Die Anzahl "Ausstehend" entspricht nicht der Anzahl, die in der WSUS-Konsole angegeben wird.


 

Any ideas?

Gruss, Hitsch

Link zu diesem Kommentar

Ich kriege die Status-Zahl eines Rechners bei "Updates erforderlich" nie auf Null.

2) Wenn ich auf dem betroffenen Rechner auf -> Windows Updates -> Nach Updates suchen -> ...sagt er dass keine Update verfügbar wären und Win. auf dem aktuellen Stand ist. Im WSUS zeigt er mir aber, erforderliche Updates = 28.

Es gibt mehrere Möglichkeiten.

 

1. Die erforderlichen Updates für diesen einen Client sind nicht zur Installation für diese Gruppe freigegeben.

2. Der zur Installation genehmigten Updates sind, warum auch immer, noch nicht auf dem WSUS gedownloadet worden.

3. Der Client ist nicht in der Gruppe, für die die Updates zur Installation freigegeben worden sind. Rechtsklick auf den Client > Mietgliedschaft ändern zeigt welche Mitgliedschaft an?

 

Zu 1: Lass dir die Erforderlichen Updates bei diesem Client anzeigen. Sind wirklich alle genehmigt?

Zu 2: Schau auf die Startseite vom WSUS, Downloadstatus suchst Du. Will der WSUS noch Updates downloaden?

Zu 3: Wenn Du Updates nur für bestimmte Gruppen genehmigt hast, zählt die Gruppe 'Alle Computer' oder 'Nicht zugeordnete Computer' nicht dazu.

Link zu diesem Kommentar

Zu 1: Ja, alle Updates sind genehmigt.

Zu 2: Ja, es sind noch einige Updates zu downloaden. Aber jedesmal wenn ich den "Download wiederholen" will, kommt "Fehler: Unerwarteter Fehler" und die Verbindung bricht ab. Ich muss dann auf "Serverknoten zurücksetzen" gehen und das Spiel geht von vorne los.
Zu 3: Nein, die Updates sind alle für "Alle Computer" bereits genehmigt worden.

Link zu diesem Kommentar

Zu 2: Ja, es sind noch einige Updates zu downloaden. Aber jedesmal wenn ich den "Download wiederholen" will, kommt "Fehler: Unerwarteter Fehler" und die Verbindung bricht ab. Ich muss dann auf "Serverknoten zurücksetzen" gehen und das Spiel geht von vorne los.

In einer Updateansicht kannst Du dir die Updates anzeigen lassen, bzw. nach dem Dateistatus sortieren lassen, und die betroffenen Updates erstmal auf Nicht Genehmigt setzen. Lass dann den Bereinigungsassistenten zweimal laufen.

Link zu diesem Kommentar

Ich habe das Script konfiguiert, bei [string]$WSUSServer = "FQDN vom WSUS Server angeben" habe ich "<Serverhostname>.<Domaene>.local" eingegeben, trotzdem wirft er folgenden Fehler ins Log aus:

 

Ausnahme beim Aufrufen von "GetUpdateServer" mit 3 Argument(en):  "Der Typeninitialisierer fr "Microsoft.UpdateServices.Internal.Constants" hat eine Ausnahme verursacht."Bei C:\temp\WSUS_Scripts\02_WSUS_serverbereinigung2.ps1:38 Zeichen:84+ $wsusParent = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer <<<< ($WSUSServer,$useSecureConnection,$portNumber);    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException    + FullyQualifiedErrorId : DotNetMethodException Sie k”nnen keine Methode fr einen Ausdruck mit dem Wert NULL aufrufen.Bei C:\temp\WSUS_Scripts\02_WSUS_serverbereinigung2.ps1:45 Zeichen:48+ $CleanupManager = $wsusParent.GetCleanupManager <<<< ();    + CategoryInfo          : InvalidOperation: (GetCleanupManager:String) [],     RuntimeException    + FullyQualifiedErrorId : InvokeMethodOnNull Sie k”nnen keine Methode fr einen Ausdruck mit dem Wert NULL aufrufen.Bei C:\temp\WSUS_Scripts\02_WSUS_serverbereinigung2.ps1:47 Zeichen:31+ $CleanupManager.PerformCleanup <<<< ($CleanupScope) | out-file -filepath $LogFile -append -noClobber;    + CategoryInfo          : InvalidOperation: (PerformCleanup:String) [], Ru    ntimeException    + FullyQualifiedErrorId : InvokeMethodOnNull
=> Sieht danach aus, dass er die Methode mit dem Wsus-Server nicht korrekt füllt oder NULL ergibt.

Ich habs auch mal ohne FQDN probiert, also mit nur <Servername>. Hat auch nicht funktioniert, gleicher Fehler

 

 

Hier noch mein batchfile, mit welchem ich das Serverbereinigung2-Script starten lasse:

 

@echo offset log=C:\temp\WSUS_Scripts\02_serverbereinigung2.logset cleanupscript=C:\temp\WSUS_Scripts\02_WSUS_serverbereinigung2.ps1set wsus-server-01=<Server>.<Domaene>.localecho. >> "%log%"echo ############################################################ >> "%log%"echo. >> "%log%"echo. >> "%log%"echo Cleanup Report %wsus-server-01% on %date%: >> "%log%"echo ------------------------------------------------------------ >> "%log%""%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe" "%cleanupscript%" %wsus-server-01% >> "%log%"pause
bearbeitet von Hitsch
Link zu diesem Kommentar

Hier das Script das bei uns läuft:

# Original Script ist von hier geklaut: http://www.wsus.info/index.php?showtopic=13977

#Region VARIABLES

# WSUS Connection Parameters:
[String]$parentServer = "WSUS.Domain.LOCAL"
[Boolean]$useSecureConnection = $True
[Int32]$portNumber = 8530
[String]$LogFile = "C:\WSUS\MeinLogfile.txt"
[String]$SMTPServer = "Deine IP-Adresse"

#Alte Logdatei vorsichtshalber löschen.
Remove-Item $LogFile

# Cleanup Parameters:
# Decline updates that have not been approved for 30 days or more, are not currently needed by any clients, and are superseded by an aproved update.
[Boolean]$supersededUpdates = $True
# Decline updates that aren't approved and have been expired my Microsoft.
[Boolean]$expiredUpdates = $True
# Delete updates that are expired and have not been approved for 30 days or more.
[Boolean]$obsoleteUpdates = $True
# Delete older update revisions that have not been approved for 30 days or more.
[Boolean]$compressUpdates = $True
# Delete computers that have not contacted the server in 30 days or more.
[Boolean]$obsoleteComputers = $False
# Delete update files that aren't needed by updates or downstream servers.
[Boolean]$unneededContentFiles = $True

#EndRegion VARIABLES

#Region SCRIPT

# Load .NET assembly
[void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration");

# Connect to WSUS Server
$wsusParent = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer();

# Log the date first
date | out-file -filepath $LogFile -append -noClobber;

# Perform Cleanup
$wsusParent | out-file -filepath $LogFile -append -noClobber;
$CleanupManager = $wsusParent.GetCleanupManager();
$CleanupScope = New-Object Microsoft.UpdateServices.Administration.CleanupScope($supersededUpdates,$expiredUpdates,$obsoleteUpdates,$compressUpdates,$obsoleteComputers,$unneededContentFiles);
$CleanupManager.PerformCleanup($CleanupScope) | out-file -filepath $LogFile -append -noClobber;

#Get list of downstream servers
#$wsusDownstreams = [Microsoft.UpdateServices.Administration.AdminProxy]::DownstreamServerCollection;
#$wsusDownstreams = $wsusParent.GetDownstreamServers();

#Clean each downstream server
#$wsusDownstreams | ForEach-Object {
#$_.FullDomainName | out-file -filepath $LogFile -append -noClobber;
#$wsusReplica = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer($_.FullDomainName,$useSecureConnection,$portNumber);
#$CleanupManager = $wsusReplica.GetCleanupManager();
#$CleanupScope = New-Object Microsoft.UpdateServices.Administration.CleanupScope($supersededUpdates,$expiredUpdates,$obsoleteUpdates,$compressUpdates,$obsoleteComputers,$unneededContentFiles);
#$CleanupManager.PerformCleanup($CleanupScope) | out-file -filepath $LogFile -append -noClobber;
#}

#EndRegion SCRIPT

# Dieser Teil ist von hier kopiert: http://gallery.technet.microsoft.com/scriptcenter/90ca6976-d441-4a10-89b0-30a7103d55db#content

# Mail the report... 
$message = new-object Net.Mail.MailMessage 
#$message_attachment = new-object Net.Mail.Attachment($logfile) 
$mailer = new-object Net.Mail.SmtpClient($SMTPServer) 

 
$message.From = "absender@domain.local" 
$message.To.Add("Empfänger@domain.local") 
$MeinText = "WSUS - Server CleanUp Bericht " + $server
#$MeinText =  $parentserver
$message.Subject = $MeinText
#$message.Subject = "Windows Update - Server CleanUp Bericht " $parentServer
#$message.Body = "Report" 
#$datei = Get-content $logfile
#$message.Body = $datei
$message.Body = [string]::join([environment]::NewLine, (get-content $logfile)) 
#$message.Attachments.Add($message_attachment)  
 
$mailer.Send($message) 

#Logdatei löschen.
Remove-Item $LogFile

Als CleanUpWSUS.ps1 abspeichern und aufrufen. Am besten kopierst Du das Script zuerst in die Windows Power Shell ISE und lässt es dort ausführen. Achtung! Port korrekt angeben! Seit W2012 wird out of the Box der Port 8530 verwendet!

bearbeitet von Sunny61
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...