Delen via


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.

Schermopname van de onderhoudsopties voor WSUS in software-updatepuntonderdelen venster Eigenschappen.

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.

  1. Lees alle informatie en instructies in dit artikel voordat u het onderhoudsproces start.

  2. 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.

  3. 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.

  4. 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.

    Schermopname van de instelling Synchronisatie inschakelen voor een planning.

  5. 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.

    Schermopname van de twee voorbeeld-SUPs.

WSUS-onderhoud uitvoeren

De basisstappen die nodig zijn voor het juiste WSUS-onderhoud zijn:

  1. Een back-up maken van de WSUS-database
  2. Aangepaste indexen maken
  3. De WSUS-database opnieuw indexeren
  4. Achterhaalde updates weigeren en onderhoud uitvoeren
  5. 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.

Locatie van de optie ‘niet-gegroepeerde indexen aan de WSUS-database toevoegen’ in de SUP-configuratie van Configuration Manager.

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.

  1. Zorg ervoor dat u een back-up van de SUSDB-database hebt.

  2. 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 .

  3. 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:

Schermopname van SqlServerName-SSEE.

Schermopname van SqlServerName-WID.

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:

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.

Schermopname van de fout Kan geen verbinding maken met server.

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.

De SQL-instructie uitvoeren.

Schermopname van het geslaagde logboek.

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.

Schermopname van de optie Verlopen updates weigeren in WSUS volgens de optie vervangingsregels op het tabblad WSUS-onderhoud.

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.

Schermopname van de opties voor onmiddellijk verlopen vervangen updates op het tabblad Vervangingsregels.

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.

Schermopname van de optie Bron en proxyserver bijwerken.

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:

Schermopname van de maanden voor het verlopen van vervangen updates.

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:

Windows PowerShell-venster voert SkipDecline en ExclusionPeriod 60 uit.

Het script uitvoeren met -ExclusionPeriod 60 om vervangen updates ouder dan 60 dagen te weigeren:

Schermopname van het venster Windows PowerShell met ExclusionPeriod 60 uitgevoerd.

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:

Schermopname van de Windows PowerShell uitvoer- en voortgangsindicator.

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.

Schermopname van de optie Verouderde updates verwijderen uit de WSUS-database.

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:

Schermopname van de locatiepagina van de wizard WSUS-server opschonen.

Zie Het SQL Server-foutenlogboek weergeven voor meer informatie.

Schermopname van de startpagina van de wizard WSUS-server opschonen.

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.

De wizard ‘Opschoning van de WSUS-server’ na afloop.

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:

  1. 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.

  2. 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 spDeleteUpdatete 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.

  1. 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.

    Schermopname van de vervangingsregels.

  2. Als u nog geen back-up van de SUSDB-database hebt gemaakt, doet u dit voordat u verdergaat.

  3. Gebruik SQL Server Management Studio om verbinding te maken met SUSDB.

  4. 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.'
    
  5. 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.

Schermopname van het scherm WSUS Approve Updates.

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.

Hoe importeert u updates in WSUS.

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.

  1. 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.

  2. Als u downstream-WSUS-servers hebt, moet u er eerst onderhoud aan uitvoeren en vervolgens de upstream-servers uitvoeren.

  3. 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:

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.

  1. 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.

    Schermopname van het scherm Een taak maken in WSUS.

  2. 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 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 # 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.

    WSUS voeg een scriptregel toe om de taak te starten.

  3. 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 de WSUS-bewerkingstrigger in voor de taak.

  4. 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 .

  5. 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

  1. Sla het script voor het opnieuw indexeren van de WSUS-database op als een SQL-bestand (bijvoorbeeld SUSDBMaint.sql).

  2. Maak een basistaak en geef deze een naam:

    WSUS-scherm met wizard ‘Basistaak maken’.

  3. 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:

    Stel de frequentie in voor die taak in de wizard ‘Basistaak maken’.

  4. 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

    Hoe het script eruit moet zien in de wizard ‘Basistaak maken’.

  5. 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:

    Pop-upbevestigingsscherm ‘Task Scheduler’.

  6. 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.

  1. 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.

    Typ een naam voor uw WSUS-onderhoudsplan.

  2. Selecteer subplan1 en zorg ervoor dat uw werkset zich in de context bevindt:

    Zorg dat uw werkset in context is.

  3. Sleep en zet de taak ‘Execute T-SQL Statement Task’ neer.

    Schermopname van de optie T-SQL-instructietaak uitvoeren.

  4. Klik met de rechtermuisknop op Windows.edb en selecteer Eigenschappen. Kopieer en plak het re-indexscript van WSUS en klik op ‘OK’.

    Schermopname van het kopiëren en plakken van het script voor het opnieuw indexeren van WSUS.

  5. 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.

    Scherm ‘nieuw werkschema WSUS’.

  6. 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: