De volledige handleiding voor Microsoft WSUS- en Configuration Manager SUP-onderhoud
In dit artikel worden enkele veelgestelde vragen over WSUS-onderhoud voor Configuration Manager omgevingen behandeld.
Oorspronkelijke productversie: Windows Servers, Windows Server Update Services, Configuration Manager
Oorspronkelijk KB-nummer: 4490644
Inleiding
Vragen gaan vaak over hoe ik dit onderhoud op de juiste manier moet uitvoeren in een Configuration Manager-omgeving of hoe vaak moet ik dit onderhoud uitvoeren. Het is niet ongebruikelijk dat gewetensbezwaren Configuration Manager beheerders niet weten dat WSUS-onderhoud helemaal moet worden uitgevoerd. De meesten van ons hebben zojuist WSUS-servers ingesteld omdat dit een vereiste is voor een software-updatepunt (SUP). Zodra de SUP is ingesteld, sluiten we de WSUS-console en doen we alsof deze niet bestaat. Helaas kan het problematisch zijn voor Configuration Manager-clients en de algehele prestaties van de WSUS/SUP-server.
Als u begrijpt dat dit onderhoud moet worden uitgevoerd, vraagt u zich af welk onderhoud u moet uitvoeren en hoe vaak u dit moet doen. Het antwoord is dat u maandelijks onderhoud moet uitvoeren. Onderhoud is eenvoudig en duurt niet lang voor WSUS-servers die vanaf het begin goed zijn onderhouden. Als het echter enige tijd geleden is dat WSUS-onderhoud is uitgevoerd, kan het opschonen de eerste keer moeilijker of tijdrovender zijn. Het zal in de volgende maanden veel gemakkelijker of sneller zijn.
Zie Handmatig en automatisch WSUS-databaseonderhoud voor meer informatie over beknopte stappen en automatische scripts.
WSUS onderhouden tijdens het ondersteunen van Configuration Manager huidige vertakkingsversie 1906 en latere versies
Als u Configuration Manager huidige versie van vertakking 1906 of nieuwere versies gebruikt, raden we u aan om de WSUS-onderhoudsopties in de configuratie van het software-updatepunt op de site op het hoogste niveau in te schakelen om de opschoonprocedures na elke synchronisatie te automatiseren. Het zou effectief alle opschoonbewerkingen verwerken die in dit artikel worden beschreven, met uitzondering van back-up en opnieuw indexeren van WSUS-database. U moet de back-up van de WSUS-database nog steeds automatiseren, samen met het opnieuw indexeren van de WSUS-database volgens een schema.
Raadpleeg software-updates. voor meer informatie over dit foutbericht:
Belangrijke aandachtspunten
Notitie
Als u gebruikmaakt van de onderhoudsfuncties die zijn toegevoegd in Configuration Manager versie 1906, hoeft u deze items niet te overwegen omdat Configuration Manager de opschoning na elke synchronisatie afhandelt.
Lees alle informatie en instructies in dit artikel voordat u het onderhoudsproces start.
Wanneer u WSUS samen met downstreamservers gebruikt, worden WSUS-servers van boven naar beneden toegevoegd, maar moeten ze van beneden naar boven worden verwijderd. Bij het synchroniseren of toevoegen van updates gaan ze eerst naar de upstream-WSUS-server en repliceren ze vervolgens omlaag naar de downstreamservers. Bij het uitvoeren van een opschoning en het verwijderen van items van WSUS-servers, moet u onderaan de hiërarchie beginnen.
WSUS-onderhoud kan tegelijkertijd worden uitgevoerd op meerdere servers in dezelfde laag. Wanneer u dit doet, moet u ervoor zorgen dat de ene laag wordt uitgevoerd voordat u naar de volgende laag gaat. De stappen voor opschonen en opnieuw indexeren die hieronder worden beschreven, moeten worden uitgevoerd op alle WSUS-servers, ongeacht of ze een replica-WSUS-server zijn of niet. Zie Vervangen updates weigeren voor meer informatie over het bepalen of een WSUS-server een replica is.
Zorg ervoor dat SUPs niet worden gesynchroniseerd tijdens het onderhoudsproces, omdat dit kan leiden tot een verlies van al uitgevoerd werk. Controleer het SUP-synchronisatieschema en stel deze tijdelijk in op handmatig tijdens dit proces.
Als u meerdere SUPs van de primaire site of centraal beheer sit (CAS) hebt die de SUSDB niet delen, kunt u de WSUS-server die met de eerste SUP op de site synchroniseert, beschouwen als een laag onder de site. Mijn CAS-site heeft bijvoorbeeld twee SUPs:
- De nieuwe synchronisatie met Microsoft Update zou mijn hoogste laag (Laag1) zijn.
- De server met de naam ‘2012’ synchroniseert met ‘Nieuw’ en wordt in overweging genomen in de tweede laag. Het kan worden opgeschoond op hetzelfde moment dat ik al mijn andere Tier2-servers zou doen, zoals de enige SUP van mijn primaire site.
WSUS-onderhoud uitvoeren
De basisstappen die nodig zijn voor het juiste WSUS-onderhoud zijn:
- Een back-up maken van de WSUS-database
- Aangepaste indexen maken
- De WSUS-database opnieuw indexeren
- Achterhaalde updates weigeren en onderhoud uitvoeren
- De wizard ‘Opschoning van de WSUS-server’.
Een back-up maken van de WSUS-database
Maak een back-up van de WSUS-database (SUSDB) met behulp van de gewenste methode. Zie Een gedeeld postvak maken voor meer informatie.
Aangepaste indexen maken
Dit proces is optioneel, maar wordt aanbevolen, waardoor de prestaties tijdens volgende opschoningsbewerkingen aanzienlijk worden verbeterd.
Als u Configuration Manager huidige vertakkingsversie 1906 of een latere versie gebruikt, raden we u aan Configuration Manager te gebruiken om de indexen te maken. Als u de indexen wilt maken, configureert u de optie Niet-geclusterde indexen toevoegen aan de WSUS-databaseoptie in de configuratie van het software-updatepunt voor de bovenste site.
Als u een oudere versie van Configuration Manager of zelfstandige WSUS-servers gebruikt, volgt u deze stappen om aangepaste indexen te maken in de SUSDB-database. Voor elke SUSDB is dit een eenmalig proces.
Zorg ervoor dat u een back-up van de SUSDB-database hebt.
Gebruik SQL Management Studio om verbinding te maken met de SUSDB-database, op dezelfde manier als beschreven in de sectie De WSUS-database opnieuw indexeren .
Voer het volgende script uit op SUSDB om twee aangepaste indexen te maken:
-- Create custom index in tbLocalizedPropertyForRevision USE [SUSDB] CREATE NONCLUSTERED INDEX [nclLocalizedPropertyID] ON [dbo].[tbLocalizedPropertyForRevision] ( [LocalizedPropertyID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -- Create custom index in tbRevisionSupersedesUpdate CREATE NONCLUSTERED INDEX [nclSupercededUpdateID] ON [dbo].[tbRevisionSupersedesUpdate] ( [SupersededUpdateID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
Als er eerder aangepaste indexen zijn gemaakt, resulteert het opnieuw uitvoeren van het script in een fout die vergelijkbaar is met de volgende:
Msg 1913, Level 16, State 1, Line 1
De bewerking is mislukt omdat er al een index of statistieken met de naam nclLocalizedPropertyID bestaat in de tabel dbo.tbLocalizedPropertyForRevision.
De WSUS-database opnieuw indexeren
Als u de WSUS-database (SUSDB) opnieuw wilt indexeren, gebruikt u het script WSUS Database T-SQL opnieuw indexeren .
De stappen voor het maken van verbinding met SUSDB en het opnieuw indexeren verschillen, afhankelijk van of SUSDB wordt uitgevoerd in SQL Server of Windows Interne database (WID). Als u wilt bepalen waar SUSDB wordt uitgevoerd, controleert u de waarde van de SQLServerName
registervermelding op de WSUS-server op de HKEY_LOCAL_MACHINE\Software\Microsoft\Update Services\Server\Setup
subsleutel.
Als de waarde alleen de servernaam of server\instance bevat, wordt SUSDB uitgevoerd op een SQL Server. Als de waarde de tekenreeks of ##WID
de tekenreeks ##SSEE
bevat, wordt SUSDB uitgevoerd in WID, zoals wordt weergegeven:
Als SUSDB is geïnstalleerd op WID
Als SUSDB is geïnstalleerd op WID, moet SQL Server Management Studio Express lokaal worden geïnstalleerd om het script voor opnieuw indexeren uit te voeren. Hier is een eenvoudige manier om te bepalen welke versie van SQL Server Management Studio Express moet worden geïnstalleerd:
Windows Server 2012 en latere versies
Ga naar
C:\Windows\WID\Log
het foutenlogboek met het versienummer en zoek het.Zoek het versienummer op in How to determine the version, edition and update level of SQL Server and its components. Deze waarde geeft aan op welk servicepackniveau (SP) WID wordt uitgevoerd. Neem het SP-niveau op bij het zoeken in het Microsoft Downloadcentrum naar SQL Server Management Studio Express.
Voor Windows Server 2008 R2 of eerdere versies:
C:\Windows\SYSMSI\SSEE\MSSQL.2005\MSSQL\LOG
Open het laatste foutenlogboek met Kladblok en open het. Bovenaan staat een versienummer (bijvoorbeeld 9.00.4035.00 x64). Zoek het versienummer op in How to determine the version, edition and update level of SQL Server and its components. Dit versienummer geeft aan op welk Service Pack-niveau het wordt uitgevoerd. Neem het SP-niveau op bij het zoeken in het Microsoft Downloadcentrum naar SQL Server Management Studio Express.
Nadat u SQL Server Management Studio Express hebt geïnstalleerd, start u deze en voert u de servernaam in waarmee u verbinding wilt maken:
- Als het besturingssysteem Windows Server 2012 of nieuwere versies is, gebruikt u
\\.\pipe\MICROSOFT##WID\tsql\query
. - Als het besturingssysteem ouder is dan Windows Server 2012, voert u in
\\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query
.
Als er voor WID fouten optreden die vergelijkbaar zijn met het volgende wanneer u verbinding probeert te maken met SUSDB met behulp van SQL Server Management Studio (SSMS), start u SSMS met behulp van de optie Als administrator uitvoeren.
Als SUSDB is geïnstalleerd op SQL Server
Als SUSDB is geïnstalleerd op volledige SQL Server, start u SQL Server Management Studio en voert u de naam van de server (en het exemplaar indien nodig) in wanneer hierom wordt gevraagd.
Tip
U kunt ook een hulpprogramma gebruiken dat wordt aangeroepen sqlcmd
om het script voor opnieuw indexeren uit te voeren. Voor meer informatie, raadpleeg de Opmerkingen bij release.
Het script uitvoeren
Als u het script wilt uitvoeren in SQL Server Management Studio of SQL Server Management Studio Express, selecteert u Nieuwe query, plakt u het script in het venster en selecteert u Uitvoeren. Wanneer deze is voltooid, wordt er een bericht weergegeven dat de query is uitgevoerd op de statusbalk. En het deelvenster Resultaten bevat berichten die betrekking hebben op de indexen die opnieuw zijn opgebouwd.
Achterhaalde updates weigeren en onderhoud uitvoeren
Weiger vervangen updates op de WSUS-server om clients te helpen efficiënter te scannen. Voordat u updates afneemt, moet u ervoor zorgen dat de vervangen updates worden geïmplementeerd en dat vervangen updates niet meer nodig zijn. Configuration Manager bevat een afzonderlijke opschoning, waardoor vervangen updates kunnen verlopen op basis van opgegeven criteria. Raadpleeg voor meer informatie de volgende artikelen:
De volgende SQL-query kan worden uitgevoerd op de SUSDB-database om snel het aantal vervangen updates te bepalen. Als het aantal vervangen updates hoger is dan 1500, kan dit verschillende problemen met betrekking tot software-updates aan de server- en clientzijde veroorzaken.
-- Find the number of superseded updates
Select COUNT(UpdateID) from vwMinimalUpdate where IsSuperseded=1 and Declined=0
Als u Configuration Manager huidige vertakkingsversie 1906 of een latere versie gebruikt, raden we u aan de vervangen updates automatisch te weigeren door verlopen updates in WSUS in te schakelen volgens de optie vervangingsregels in de configuratie van het software-updatepunt voor de bovenste site.
Wanneer u deze optie gebruikt, kunt u zien hoeveel updates zijn geweigerd door het bestand WsyncMgr.log te controleren nadat het synchronisatieproces is voltooid. Als u deze optie gebruikt, hoeft u het script dat verderop in deze sectie wordt beschreven, niet te gebruiken (door het handmatig uit te voeren of door het in te stellen als taak om het volgens een schema uit te voeren).
Als u zelfstandige WSUS-servers of een oudere versie van Configuration Manager gebruikt, kunt u vervangen updates handmatig weigeren met behulp van de WSUS-console. U kunt ook dit PowerShell-script uitvoeren. Kopieer en sla het script vervolgens op als eenDecline-SupersededUpdatesWithExclusionPeriod.ps1 scriptbestand.
Notitie
Dit script wordt geleverd zoals het is. Het moet volledig worden getest in een lab voordat u het in productie gebruikt. Microsoft geeft op geen enkele manier garanties met betrekking tot het gebruik van dit script. Voer altijd eerst het script met de -SkipDecline
parameter uit om een overzicht te krijgen van het aantal vervangen updates dat wordt geweigerd.
Als Configuration Manager is ingesteld op Onmiddellijk verlopen van vervangen updates (zie hieronder), kan het PowerShell-script worden gebruikt om alle vervangen updates te weigeren. Dit moet worden gedaan op alle autonome WSUS-servers in de Configuration Manager-/WSUS-hiërarchie.
U hoeft het PowerShell-script niet uit te voeren op WSUS-servers die zijn ingesteld als replica's, zoals secundaire site-SUPs. Controleer de instellingen van de updatebron om te bepalen of een WSUS-server een replica is.
Als updates niet zijn geconfigureerd om onmiddellijk te verlopen in Configuration Manager, moet het PowerShell-script worden uitgevoerd met een uitsluitingsperiode die overeenkomt met de Configuration Manager instelling voor het aantal dagen dat vervangen updates verlopen. In dit geval is het 60 dagen geleden dat eigenschappen van SUP-onderdelen zijn geconfigureerd om twee maanden te wachten voordat vervangen updates verlopen:
De volgende opdrachtregels illustreren de verschillende manieren waarop het PowerShell-script kan worden uitgevoerd:
Notitie
Wanneer u het script uitvoert op de WSUS-server, gebruikt LOCALHOST
u dit in plaats van de werkelijke SERVERNAME
.
Decline-SupersededUpdatesWithExclusionPeriod.ps1 -UpdateServer SERVERNAME -Port 8530 –SkipDecline
Decline-SupersededUpdatesWithExclusionPeriod.ps1 -UpdateServer SERVERNAME -Port 8530 –ExclusionPeriod 60
Decline-SupersededUpdatesWithExclusionPeriod.ps1 -UpdateServer SERVERNAME -Port 8530
Decline-SupersededUpdatesWithExclusionPeriod.ps1 -UpdateServer SERVERNAME -UseSSL -Port 8531
Het script uitvoeren met een -SkipDecline
en -ExclusionPeriod 60
informatie verzamelen over updates op de WSUS-server en hoeveel updates kunnen worden geweigerd:
Het script uitvoeren met -ExclusionPeriod 60 om vervangen updates ouder dan 60 dagen te weigeren:
De uitvoer- en voortgangsindicatoren worden weergegeven terwijl het script wordt uitgevoerd. Let op het SupersededUpdates.csv-bestand , dat een lijst bevat met alle updates die door het script worden geweigerd:
Notitie
Als er problemen optreden bij het gebruik van het bovenstaande PowerShell-script om vervangen updates te weigeren, raadpleegt u de sectie Het uitvoeren van het Decline-SupersededUpdatesWithExclusionPeriod.ps1 script treedt een time-out op bij het maken van verbinding met de WSUS-server, of er treedt een 401-fout op tijdens het uitvoeren van stappen voor probleemoplossing.
Nadat vervangen updates zijn geweigerd, moet SUSDB voor de beste prestaties opnieuw worden geïndexeerd. Zie De WSUS-database opnieuw indexeren voor gerelateerde informatie.
De wizard ‘Opschoning van de WSUS-server’.
De wizard WSUS-server opschonen biedt opties voor het opschonen van de volgende items:
- Ongebruikte updates en updaterevisies (ook wel verouderde updates genoemd)
- Computers die geen contact maken met de server
- Overbodige updatebestanden
- Verlopen updates
- Vervangen updates
In een Configuration Manager omgeving zijn computers die geen contact maken met de server en overbodige opties voor updatebestanden niet relevant omdat Configuration Manager software-update-inhoud en -apparaten beheert, tenzij de opties Alle WSUS-rapportagegebeurtenissen maken of Alleen WSUS-statusrapportagegebeurtenissen maken zijn geselecteerd onder Synchronisatie-instellingen voor software-updates. Als u een van deze opties hebt geconfigureerd, kunt u overwegen de WSUS-server opschonen te automatiseren om deze twee opties op te schonen.
Als u Configuration Manager huidige vertakkingsversie 1906 of een latere versie gebruikt, worden verlopen updates weigeren in WSUS ingeschakeld op basis van de optie regels voor vervanging, waarbij verlopen updates en vervangen updates worden geweigerd op basis van de vervangingsregels die zijn opgegeven in Configuration Manager. Als u de optie Verouderde updates verwijderen uit de WSUS-database inschakelt in Configuration Manager huidige vertakkingsversie 1906, wordt het opschonen van ongebruikte updates en updaterevisies (verouderde updates) afgehandeld. Het wordt aanbevolen om deze opties in te schakelen in de configuratie van het software-updatepunt op de site op het hoogste niveau, zodat Configuration Manager de WSUS-database kan opschonen.
Als u nog nooit verouderde updates uit de WSUS-database hebt opgeschoond, kan er een time-out optreden voor deze taak. U kunt WsyncMgr.log controleren voor meer informatie en het SQL-script dat is opgegeven in HELP handmatig uitvoeren. Mijn WSUS wordt al jaren uitgevoerd zonder dat er ooit onderhoud hoeft te worden uitgevoerd en de wizard voor opschonen blijft één keer een time-out krijgen, waardoor volgende pogingen van Configuration Manager kunnen worden uitgevoerd. Zie de documenten voor meer informatie over het opschonen en onderhouden van WSUS in Configuration Manager.
Voor zelfstandige WSUS-servers of als u een oudere versie van Configuration Manager gebruikt, wordt u aangeraden de wizard WSUS-opschoning periodiek uit te voeren. Als de wizard WSUS-server opschonen nog nooit is uitgevoerd en de WSUS al een tijdje in productie is, kan er een time-out optreden bij het opschonen. In dat geval moet u eerst opnieuw indexeren met stap 2 en stap 3 en vervolgens de opschoning uitvoeren met alleen de optie Ongebruikte updates en revisies bijwerken ingeschakeld.
Als u de WSUS-wizard Opschonen nog nooit hebt uitgevoerd, zijn er mogelijk enkele geslaagden nodig om het opschonen uit te voeren met ongebruikte updates en updaterevisies . Als er een time-out optreedt, voert u deze opnieuw uit totdat het is voltooid en voert u elk van de andere opties één voor één uit. Maak ten slotte een volledige pass met alle opties ingeschakeld. Als er nog steeds time-outs optreden, raadpleegt u het SQL Server alternatief in HELP! Mijn WSUS wordt al jaren uitgevoerd zonder dat er ooit onderhoud hoeft te worden uitgevoerd en de wizard opschonen blijft een time-out krijgen. Het kan meerdere uren of dagen duren voordat de wizard Server opschonen of SQL-alternatief wordt uitgevoerd.
De wizard WSUS-server opschonen wordt uitgevoerd vanuit de WSUS-console. Deze bevindt zich onder Opties, zoals hier wordt weergegeven:
Zie Het SQL Server-foutenlogboek weergeven voor meer informatie.
Nadat het aantal items is gerapporteerd dat is verwijderd, wordt het opschonen voltooid. Als u deze informatie niet ziet die wordt geretourneerd op uw WSUS-server, kunt u ervan uitgaan dat er een time-out is opgetreden bij het opschonen. In dat geval moet u deze opnieuw starten of het SQL-alternatief gebruiken.
Nadat vervangen updates zijn geweigerd, moet SUSDB voor de beste prestaties opnieuw worden geïndexeerd. Zie de sectie WSUS-database opnieuw indexeren voor gerelateerde informatie.
Probleemoplossing
Help Mijn WSUS wordt al jaren uitgevoerd zonder dat er ooit onderhoud hoeft te worden uitgevoerd en de wizard opschonen blijft een time-out krijgen
Er zijn hier twee verschillende opties:
Installeer WSUS opnieuw met een nieuwe database. Er zijn een aantal beperkingen met betrekking tot dit, met inbegrip van de lengte van de initiële synchronisatie, en volledige clientscans op SUSDB, versus differentiële scans.
Zorg ervoor dat u een back-up van de SUSDB-database hebt en voer vervolgens een herindex uit. Wanneer dit is voltooid, voert u het volgende script uit in SQL Server Management Studio of SQL Server Management Studio Express. Nadat deze is voltooid, volgt u alle bovenstaande instructies voor het uitvoeren van onderhoud. Deze laatste stap is nodig omdat met de
spDeleteUpdate
opgeslagen procedure alleen ongebruikte updates en updaterevisies worden verwijderd.
Notitie
Voordat u het script uitvoert, volgt u de stappen in de opgeslagen procedure spDeleteUpdate wordt langzaam uitgevoerd om de prestaties van de uitvoering van spDeleteUpdate
te verbeteren.
DECLARE @var1 INT
DECLARE @msg nvarchar(100)
CREATE TABLE #results (Col1 INT)
INSERT INTO #results(Col1) EXEC spGetObsoleteUpdatesToCleanup
DECLARE WC Cursor
FOR
SELECT Col1 FROM #results
OPEN WC
FETCH NEXT FROM WC
INTO @var1
WHILE (@@FETCH_STATUS > -1)
BEGIN SET @msg = 'Deleting' + CONVERT(varchar(10), @var1)
RAISERROR(@msg,0,1) WITH NOWAIT EXEC spDeleteUpdate @localUpdateID=@var1
FETCH NEXT FROM WC INTO @var1 END
CLOSE WC
DEALLOCATE WC
DROP TABLE #results
Er treedt een time-out op bij het uitvoeren van het Decline-SupersededUpdatesWithExclusionPeriod.ps1 script bij het maken van verbinding met de WSUS-server, of er treedt een 401-fout op tijdens het uitvoeren
Als er fouten optreden wanneer u het PowerShell-script probeert te gebruiken om vervangen updates te weigeren, kan een alternatief SQL-script worden uitgevoerd op SUDB.
Als Configuration Manager samen met WSUS wordt gebruikt, controleert u de eigenschappen > van software-updatepuntonderdelenvervangingsregels om te zien hoe snel vervangen updates verlopen, zoals onmiddellijk of na X maanden. Maak een notitie van dit IP-adres voor later gebruik.
Als u nog geen back-up van de SUSDB-database hebt gemaakt, doet u dit voordat u verdergaat.
Gebruik SQL Server Management Studio om verbinding te maken met SUSDB.
Voer de volgende query uit. Het getal 90 in de regel die de regel bevat
DECLARE @thresholdDays INT = 90
, moet overeenkomen met de vervangingsregels uit stap 1 van deze procedure en het juiste aantal dagen dat overeenkomt met het aantal maanden dat is geconfigureerd in vervangingsregels. Als dit is ingesteld op onmiddellijk verlopen, moet de waarde in de SQL-query worden@thresholdDays
ingesteld op nul.-- Decline superseded updates in SUSDB; alternative to Decline-SupersededUpdatesWithExclusionPeriod.ps1 DECLARE @thresholdDays INT = 90 -- Specify the number of days between today and the release date for which the superseded updates must not be declined (i.e., updates older than 90 days). This should match configuration of supersedence rules in SUP component properties, if ConfigMgr is being used with WSUS. DECLARE @testRun BIT = 0 -- Set this to 1 to test without declining anything. -- There shouldn't be any need to modify anything after this line. DECLARE @uid UNIQUEIDENTIFIER DECLARE @title NVARCHAR(500) DECLARE @date DATETIME DECLARE @userName NVARCHAR(100) = SYSTEM_USER DECLARE @count INT = 0 DECLARE DU CURSOR FOR SELECT MU.UpdateID, U.DefaultTitle, U.CreationDate FROM vwMinimalUpdate MU JOIN PUBLIC_VIEWS.vUpdate U ON MU.UpdateID = U.UpdateId WHERE MU.IsSuperseded = 1 AND MU.Declined = 0 AND MU.IsLatestRevision = 1 AND MU.CreationDate < DATEADD(dd,-@thresholdDays,GETDATE()) ORDER BY MU.CreationDate PRINT 'Declining superseded updates older than ' + CONVERT(NVARCHAR(5), @thresholdDays) + ' days.' + CHAR(10) OPEN DU FETCH NEXT FROM DU INTO @uid, @title, @date WHILE (@@FETCH_STATUS > - 1) BEGIN SET @count = @count + 1 PRINT 'Declining update ' + CONVERT(NVARCHAR(50), @uid) + ' (Creation Date ' + CONVERT(NVARCHAR(50), @date) + ') - ' + @title + ' ...' IF @testRun = 0 EXEC spDeclineUpdate @updateID = @uid, @adminName = @userName, @failIfReplica = 1 FETCH NEXT FROM DU INTO @uid, @title, @date END CLOSE DU DEALLOCATE DU PRINT CHAR(10) + 'Attempted to decline ' + CONVERT(NVARCHAR(10), @count) + ' updates.'
Als u de voortgang wilt controleren, controleert u het tabblad Berichten in het deelvenster Resultaten .
Wat moet ik doen als ik erachter kom dat ik een van de updates nodig heb die ik heb afgewezen?
Als u besluit dat u een van deze geweigerde updates in Configuration Manager nodig hebt, kunt u deze terug krijgen in WSUS door met de rechtermuisknop op de update te klikken en Goedkeuren te selecteren. Wijzig de goedkeuring in Niet goedgekeurd en gesynchroniseerd de SUP om de update weer in te schakelen.
Als de update zich niet meer in WSUS bevindt, kan deze worden geïmporteerd uit de Microsoft Update-catalogus als deze niet is verlopen of verwijderd uit de catalogus.
WSUS-onderhoud automatiseren
Notitie
Als u Configuration Manager versie1906 of een latere versie gebruikt, automatiseert u de opschoonprocedures door de WSUS-onderhoudsopties in te schakelen in de configuratie van het software-updatepunt van de site op het hoogste niveau. Met deze opties worden alle opschoonbewerkingen verwerkt die worden uitgevoerd door de wizard WSUS-server opschonen. U moet echter nog steeds automatisch een back-up maken van de WSUS-database en deze opnieuw indexeren volgens een schema.
WSUS-onderhoudstaken kunnen worden geautomatiseerd, ervan uitgaande dat eerst aan een aantal vereisten wordt voldaan.
Als u WSUS-opschoning nog nooit hebt uitgevoerd, moet u de eerste twee opschoningen handmatig uitvoeren. Uw tweede handmatige opschoning moet 30 dagen vanaf uw eerste worden uitgevoerd, omdat het 30 dagen duurt voordat sommige updates en updaterevisies verouderd zijn. Er zijn specifieke redenen waarom u niet wilt automatiseren tot na uw tweede opschoning. Uw eerste opschoning wordt waarschijnlijk langer uitgevoerd dan normaal. U kunt dus niet beoordelen hoe lang dit onderhoud normaal gesproken duurt. De tweede opschoning is een veel betere indicator van wat normaal is voor uw machines. Dit is belangrijk omdat u moet weten hoe lang elke stap duurt als basislijn (ik voeg ook graag ongeveer 30 minuten wiggle room toe), zodat u de timing voor uw planning kunt bepalen.
Als u downstream-WSUS-servers hebt, moet u er eerst onderhoud aan uitvoeren en vervolgens de upstream-servers uitvoeren.
Als u de herindex van de SUSDB wilt plannen, hebt u een volledige versie van SQL Server nodig. Windows Interne database (WID) heeft niet de mogelijkheid om een onderhoudstaak te plannen via SQL Server Management Studio Express. Dat gezegd hebbende, in gevallen waarin WID wordt gebruikt, kunt u de Task Scheduler gebruiken met
SQLCMD
de eerder genoemde. Als u deze route kiest, is het belangrijk dat u uw WSUS-servers/SUPs niet synchroniseert tijdens deze onderhoudsperiode. Als u dat doet, is het mogelijk dat uw downstreamservers alle updates die u zojuist hebt geprobeerd op te schonen, opnieuw synchroniseren. Ik plan dit 's nachts voor mijn AM-synchronisatie, dus ik heb tijd om dit te controleren voordat mijn synchronisatie wordt uitgevoerd.
Benodigde/nuttige koppelingen:
- De WSUS-database opnieuw indexeren
- Optie voor configuratie van agent-XPs-server
- WeekendScripter: De Windows-taakplanner gebruiken om een Windows PowerShell script uit te voeren
WSUS-opschoonscript
Notitie
Wanneer u het script uitvoert op de WSUS-server, gebruikt LOCALHOST
u dit in plaats van de werkelijke SERVERNAME
. Vervang bovendien door PORT
de gebruikte.
[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")`
| out-null
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer("SERVERNAME",$true,PORT);
$cleanupScope = new-object Microsoft.UpdateServices.Administration.CleanupScope;
$cleanupScope.DeclineSupersededUpdates = $true
$cleanupScope.DeclineExpiredUpdates = $true
$cleanupScope.CleanupObsoleteUpdates = $true
$cleanupScope.CompressUpdates = $true
#$cleanupScope.CleanupObsoleteComputers = $true
$cleanupScope.CleanupUnneededContentFiles = $true
$cleanupManager = $wsus.GetCleanupManager();
$cleanupManager.PerformCleanup($cleanupScope);
De WSUS-opschoontaak instellen in Task Scheduler
Notitie
Zoals eerder vermeld, kunt u, als u Configuration Manager huidige vertakkingsversie 1906 of een latere versie gebruikt, de opschoonprocedures automatiseren door de WSUS-onderhoudsopties in te schakelen in de configuratie van het software-updatepunt van de site op het hoogste niveau. Voor zelfstandige WSUS-servers of oudere versies van Configuration Manager kunt u de volgende stappen blijven gebruiken.
Het blogbericht Weekend Scripter dat in de vorige sectie wordt genoemd, bevat basisrichtingen en probleemoplossing voor deze stap. Ik begeleid u echter door het proces in de volgende stappen.
Open Task Scheduler en selecteer Een taak maken. Stel op het tabblad Algemeen de naam in van de taak, de gebruiker waarvoor u het PowerShell-script wilt uitvoeren (de meeste mensen gebruiken een serviceaccount). Selecteer Uitvoeren of een gebruiker al dan niet is aangemeld en voeg desgewenst een beschrijving toe.
Voeg op het tabblad Acties een nieuwe actie toe en geef het programma/script op dat u wilt uitvoeren. In dit geval moeten we PowerShell gebruiken en deze verwijzen naar het PS1-bestand dat we willen uitvoeren. U kunt het WSUS-opschoonscript gebruiken. Met dit script worden opschoonopties uitgevoerd die Configuration Manager huidige vertakkingsversie 1906 niet doet. U kunt de opmerkingen ongedaan maken als u zelfstandige WSUS of een oudere versie van Configuration Manager gebruikt. Als u een logboek wilt, kunt u de laatste regel van het script als volgt wijzigen:
Notitie
Wanneer u het script uitvoert op de WSUS-server, gebruikt
LOCALHOST
u dit in plaats van de werkelijkeSERVERNAME
. Vervang bovendien doorPORT
de gebruikte.[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | out-null $wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer("SERVERNAME",$true,PORT); $cleanupScope = new-object Microsoft.UpdateServices.Administration.CleanupScope; # $cleanupScope.DeclineSupersededUpdates = $true # Performed by CM1906 # $cleanupScope.DeclineExpiredUpdates = $true # Performed by CM1906 # $cleanupScope.CleanupObsoleteUpdates = $true # Performed by CM1906 $cleanupScope.CompressUpdates = $true $cleanupScope.CleanupObsoleteComputers = $true $cleanupScope.CleanupUnneededContentFiles = $true $cleanupManager = $wsus.GetCleanupManager(); $cleanupManager.PerformCleanup($cleanupScope) | Out-File C:\WSUS\WsusClean.txt;
U krijgt een opmerking/waarschuwing in Task Scheduler wanneer u opslaat. U kunt deze waarschuwing negeren.
Stel op het tabblad Triggers uw planning in voor één keer per maand of volgens elk gewenst schema. Nogmaals, u moet ervoor zorgen dat u uw WSUS niet synchroniseert tijdens de hele opschoon- en herindextijd.
Stel eventuele andere voorwaarden of instellingen in die u ook wilt aanpassen. Wanneer u de taak opslaat, wordt u mogelijk gevraagd om referenties van de Run As-gebruiker .
U kunt deze stappen ook gebruiken om het Decline-SupersededUpdatesWithExclusionPeriod.ps1 script zo te configureren dat het elke drie maanden wordt uitgevoerd. Meestal stel ik dit script in om uit te voeren vóór de andere opschoonstappen, maar pas nadat ik het handmatig heb uitgevoerd en ervoor heb gezorgd dat het is voltooid. Ik ren om 12:00 uur op de eerste zondag om de drie maanden.
De SUSDB-herindex voor WID instellen met behulp van SQLCMD en Task Scheduler
Sla het script voor het opnieuw indexeren van de WSUS-database op als een SQL-bestand (bijvoorbeeld SUSDBMaint.sql).
Maak een basistaak en geef deze een naam:
Plan deze taak om ongeveer 30 minuten te beginnen nadat u verwacht dat het opschonen is voltooid. Mijn opschoning wordt elke eerste zondag om 1:00 uur uitgevoerd. Het duurt ongeveer 30 minuten om te worden uitgevoerd en ik geef het nog eens 30 minuten voordat ik mijn herindex start. Dit betekent dat ik deze taak elke eerste zondag om 02:00 uur zou plannen, zoals hier wordt weergegeven:
Selecteer de actie om een programma te starten. Typ de volgende opdracht in het vak Programma/script . Het bestand dat is opgegeven na de
-i
parameter, is het pad naar het SQL-script dat u in stap 1 hebt opgeslagen. Het bestand dat is opgegeven na de-o
parameter, is de locatie waar u het logboek wilt plaatsen. Hier volgt een voorbeeld:"C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SQLCMD.exe" -S \\.\pipe\Microsoft##WID\tsql\query -i C:\WSUS\SUSDBMaint.sql -o c:\WSUS\reindexout.txt
U krijgt een waarschuwing, vergelijkbaar met de waarschuwing die u hebt ontvangen bij het maken van de opschoontaak. Selecteer Ja om de argumenten te accepteren en selecteer Vervolgens Voltooien om toe te passen:
U kunt het script testen door af te dwingen het uit te voeren en het logboek te controleren op fouten. Als u problemen ondervindt, wordt in het logboek uitgelegd waarom. Als dit mislukt, heeft het account dat de taak uitvoert niet de juiste machtigingen of is de WID-service niet gestart.
Een eenvoudige geplande onderhoudstaak instellen in SQL voor niet-WID-SUSD's
Notitie
U moet een sysadmin in SQL Server zijn om onderhoudsplannen te maken of te beheren.
Open SQL Server Management Studio en maak verbinding met uw WSUS-exemplaar. Vouw Beheer uit, klik met de rechtermuisknop op Onderhoudsplannen en selecteer vervolgens Nieuw onderhoudsplan. Geef je plan een naam.
Selecteer subplan1 en zorg ervoor dat uw werkset zich in de context bevindt:
Sleep en zet de taak ‘Execute T-SQL Statement Task’ neer.
Klik met de rechtermuisknop op Windows.edb en selecteer Eigenschappen. Kopieer en plak het re-indexscript van WSUS en klik op ‘OK’.
Plan de uitvoering van deze taak ongeveer 30 minuten nadat u verwacht dat het opschonen is voltooid. Mijn opschoning wordt elke eerste zondag om 1:00 uur uitgevoerd. Het duurt ongeveer 30 minuten om te worden uitgevoerd en ik geef het nog eens 30 minuten voordat ik opnieuw begin te indexeren. Dit betekent dat ik deze taak elke eerste zondag om 02:00 uur zou uitvoeren.
Overweeg tijdens het maken van het onderhoudsplan ook een back-up van de SUSDB aan het plan toe te voegen. Meestal maak ik eerst een back-up, dan indexeer ik opnieuw. Het kan meer tijd toevoegen aan de planning.
Alles in elkaar zetten
Wanneer u deze uitvoert in een hiërarchie, moet de WSUS-opschoonbewerking worden uitgevoerd vanaf de onderkant van de hiërarchie. Wanneer u het script echter gebruikt om vervangen updates te weigeren, moet de uitvoering van boven naar beneden worden uitgevoerd. Het weigeren van vervangen updates is eigenlijk een soort aanvulling op een update in plaats van een verwijdering. In dit geval voegt u een type goedkeuring toe.
Omdat een synchronisatie niet kan worden uitgevoerd tijdens de daadwerkelijke opschoning, wordt u aangeraden om alle taken 's nachts te plannen/voltooien. Controleer vervolgens de voltooiing ervan via de logboekregistratie de volgende ochtend, vóór de volgende geplande synchronisatie. Als er iets is mislukt, kan het onderhoud opnieuw worden gepland voor de volgende nacht, zodra het onderliggende probleem is geïdentificeerd en opgelost.
Deze taken kunnen sneller of langzamer worden uitgevoerd, afhankelijk van de omgeving en de timing van de planning moet dat weerspiegelen. Hopelijk zijn ze sneller omdat mijn labomgeving meestal iets langzamer is dan een normale productieomgeving. Ik ben een beetje agressief over de timing van de weigeringsscripts. Als Laag2 laag3 een paar minuten overlapt, veroorzaakt dit geen probleem omdat mijn synchronisatie niet is gepland om te worden uitgevoerd.
Niet synchroniseren zorgt ervoor dat de weigeringen per ongeluk vanuit Laag2 naar mijn WSUS-replicaservers van Tier3 stromen. Ik heb mezelf extra tijd gegeven tussen de Tier3-weigering en de Tier3-opschoning, omdat ik zeker wil controleren of het weigeringsscript is voltooid voordat ik mijn opschoning uitvoer.
Er wordt een veelgestelde vraag gesteld: waarom zou ik niet alle opschonings- en herindexeringen tegelijk moeten uitvoeren omdat ik niet synchroniseer?
Het antwoord is dat je dat waarschijnlijk wel zou kunnen, maar dat zou ik niet doen. Als mijn collega over de hele wereld een synchronisatie moet uitvoeren, zou ik met dit schema het risico op zwevende updates in WSUS minimaliseren. En ik kan plannen dat het opnieuw wordt uitgevoerd om de volgende nacht te voltooien.
Tijd | Laag | Opdrachten |
---|---|---|
12:00 uur | Laag1-weigeren | |
0:15 | Laag2-weigeren | |
0:30 | Laag3-weigeren | |
1:00 | WSUS-opschoning in Laag3 | |
2:00 uur | Laag3 opnieuw indexeren | WSUS-opschoning laag2 |
3:00 uur | Tier1-Cleanup | Laag2 opnieuw indexeren |
4:00 uur | Laag1 opnieuw indexeren |
Notitie
Als u Configuration Manager huidige versie van de vertakking 1906 of een latere versie gebruikt om WSUS-onderhoud uit te voeren, voert Configuration Manager de opschoning na synchronisatie uit met behulp van de top-down-benadering. In dit scenario kunt u de back-up van de WSUS-database plannen en taken opnieuw indexeren die vóór het geconfigureerde synchronisatieschema worden uitgevoerd zonder dat u zich zorgen hoeft te maken over een van de andere stappen, omdat Configuration Manager al het andere verwerkt.
Raadpleeg de volgende artikelen voor meer informatie over dit foutbericht:
- Software-updatepunt
- Onderhoud van software-updates in Configuration Manager