Hitsch 0 Geschrieben 24. Februar 2014 Melden Teilen Geschrieben 24. Februar 2014 Moin zusammenIch 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 Zitieren Link zu diesem Kommentar
Sunny61 811 Geschrieben 24. Februar 2014 Melden Teilen Geschrieben 24. Februar 2014 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. Zitieren Link zu diesem Kommentar
Hitsch 0 Geschrieben 25. Februar 2014 Autor Melden Teilen Geschrieben 25. Februar 2014 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. Zitieren Link zu diesem Kommentar
Sunny61 811 Geschrieben 25. Februar 2014 Melden Teilen Geschrieben 25. Februar 2014 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. Zitieren Link zu diesem Kommentar
Hitsch 0 Geschrieben 28. Februar 2014 Autor Melden Teilen Geschrieben 28. Februar 2014 Jedesmal, wenn ich den Bereinigungsassistenten laufen lasse, gibt es einen "Fehler: Verbindungsfehler. Klicken Sie auf "Serverknoten zurücksetzen" ...Das mache ich dann, und dann bin ich wieder gleich weit. Dies passiert immer, wenn er etwa 2min bei "Nicht erforderliche Updatedateien werden gelöscht..." steht... Zitieren Link zu diesem Kommentar
Sunny61 811 Geschrieben 28. Februar 2014 Melden Teilen Geschrieben 28. Februar 2014 Konfiguriere dieses Script für deinen WSUS um und lass es am Abend laufen: http://www.wsus.de/serverbereinigung2 Vorher unbedingt dieses Script laufen lassen: http://gallery.technet.microsoft.com/scriptcenter/6f8cde49-5c52-4abd-9820-f1d270ddea61 Wie groß ist denn die SUSDB.mdf? Zitieren Link zu diesem Kommentar
Hitsch 0 Geschrieben 3. März 2014 Autor Melden Teilen Geschrieben 3. März 2014 (bearbeitet) 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 3. März 2014 von Hitsch Zitieren Link zu diesem Kommentar
Sunny61 811 Geschrieben 3. März 2014 Melden Teilen Geschrieben 3. März 2014 (bearbeitet) 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 3. März 2014 von Sunny61 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.