/
/

Patchpogingen automatiseren met PowerShell om handmatig werk te beperken

door Team Ninja
How to Automate Patch Retry Logic via PowerShell to Reduce Manual Intervention blog banner image

Directe samenvatting

Deze blogpost van NinjaOne biedt een uitgebreide basislijst met CMD-commands en een deep dive duik in Windows-commands met meer dan 70 essentiële cmd-commands voor zowel beginners als gevorderden. Het legt praktische opdrachtpromptcommando’s uit voor file management, directory navigation, network troubleshooting, disk operations en automatisering met echte voorbeelden om de productiviteit te verbeteren. Of u nu fundamentele cmd-commands leert of geavanceerde Windows CLI-tools onder de knie krijgt, deze gids helpt u de Command Prompt effectiever te gebruiken.

Belangrijkste punten

  • Mislukte patches herkennen: gebruik PowerShell (PSWindowsUpdate of gebeurtenissenlogboeken) om mislukte of onvolledige updatepogingen op te sporen voordat u het opnieuw probeert.
  • Installatie opnieuw proberen via PowerShell: probeer mislukte updates opnieuw met scriptlogica en foutafhandeling om stille fouten te voorkomen.
  • Pogingen bijhouden: sla het aantal pogingen, tijdstempels en mislukte KB’s op in het register om oneindige loops te voorkomen en zicht te houden op de situatie.
  • Automatiseren met geplande taken of RMM: plan terugkerende scripts voor patchpogingen of gebruik ze op schaal via NinjaOne, GPO of vergelijkbare tools.
  • Updatevoorwaarden valideren: zorg dat updatebronnen bereikbaar zijn en herstart de Windows Update-service voordat u het opnieuw probeert, zodat de slagingskans stijgt.

Mislukte updates zijn een terugkerend probleem binnen patchbeheer en ontstaan vaak door netwerkproblemen, vergrendelde systemen of conflicten tussen services. Blijft dit onopgelost dan kan dat leiden tot instabiele prestaties en worden endpoints kwetsbaar voor dreigingen.

Het automatiseren van patchpogingen beperkt de risico’s, verlaagt de mean time to repair (MTTR) en verhoogt het slagingspercentage van updates zonder technici te overladen met grote hoeveelheden tickets.

Standaardiseer uw patchworkflows en verbeter zo uw MTTR en documentatie.

→ Probeer NinjaOne Autonomous Patch Management gratis

Stappen om patchpogingen te automatiseren en updatefouten te beperken

Automatisch herstel van mislukte patches maakt een einde aan haastige handmatige diagnose en zorgt voor patch compliance op alle endpoints. Dat verlaagt op zijn beurt de werklast van technici en geeft via logboeken inzicht in terugkerende foutpatronen.

📌 Toepassingen: gebruik PowerShell-scripts om eerdere updatepogingen op te sommen en foutcodes te extraheren, zodat scripts het opnieuw kunnen proberen, kunnen wachten of kunnen stoppen. Via geplande taken, RMM-platformen en GPO-implementatie kunnen technici het opnieuw installeren van mislukte of ontbrekende updates automatiseren.

📌 Vereisten:

  • Ondersteund OS: Windows 11 of Windows Server 2016 of nieuwer
  • Rechten: beheerders- of SYSTEM-rechten
  • Updatebron: WSUS, Intune of Windows Update
  • Optioneel: RMM-platformen zoals NinjaOne

💡 Let op: sommige stappen kunnen afwijken door standaardinstellingen van het systeem of actieve instellingen per omgeving. Microsoft heeft bovendien aangekondigd dat WSUS wordt uitgefaseerd. Op het moment van schrijven wordt het nog steeds met Windows meegeleverd, maar wij raden aan over te stappen op cloudtools zoals Windows Autopatch en Intune of Azure Update Manager.

Het video-overzicht Patchpogingen automatiseren met PowerShell om handmatig werk te beperken laat zien hoe het kader met vijf stappen mislukte patches opspoort, registreert en opnieuw probeert.

Stap 1: mislukte patches opsporen met PowerShell-scripts

Effectief automatisch herstel van mislukte patches begint met proactieve detectie. De volgende scripts doorzoeken de updategeschiedenis en de resultaten van een endpoint en geven de probleemgevallen terug, zodat u een duidelijker beeld krijgt.

Mislukte patches filteren met de module PSWindowsUpdate

Dit script leest de laatste 200 vermeldingen uit de updategeschiedenis, filtert vervolgens de geslaagde installaties eruit en toont alleen de mislukte vermeldingen.

Import-Module PSWindowsUpdate
# Retrieve failed updates
$failedUpdates = Get-WindowsUpdate -IsHidden:$false -ErrorAction SilentlyContinue |
Where-Object { $_.ResultCode -ne 2 } # 2 = Succeeded

⚠️ Belangrijk: als u de installatie van PSWindowsUpdate overslaat, ontstaan er fouten, want deze PowerShell-module zit standaard niet in Windows. (Zie ⚠️ Waar u op moet letten)

Alternatieve methode om mislukte patches te filteren via het Windows-gebeurtenissenlogboek

Dit script doorzoekt de logboeken van de Windows Update-client op vermeldingen met veelvoorkomende foutsignalen, zoals de ID’s 20, 25 en 31.

Get-WinEvent -LogName "System" | Where-Object {
$_.ProviderName -eq "Microsoft-Windows-WindowsUpdateClient" -and
$_.Id -in 20, 25, 31 # Common failure event IDs
}

Stap 2: mislukte patches opnieuw proberen met PowerShell-logica

Zodra mislukte updates op een endpoint naar boven komen, kunt u PowerShell-scripts gebruiken om de patches automatisch opnieuw te installeren. Daarmee vervalt het handmatige patchwerk en kunt u op schaal herstellen zonder tussenkomst zodra een mislukte patch wordt gedetecteerd.

Voorbeeldscript in PowerShell om mislukte updates opnieuw te installeren

Dit script bouwt voort op $failedUpdates uit stap 1 en doorloopt de opgesomde mislukte updates voor herinstallatie.

foreach ($update in $failedUpdates) {
Write-Output "Retrying: $($update.Title)"
Install-WindowsUpdate -KBArticleID $update.KBArticleID -AcceptAll -AutoReboot -IgnoreReboot -ErrorAction Continue
}

Voorbeeldscript met foutafhandeling

try {
Install-WindowsUpdate -KBArticleID $update.KBArticleID -AcceptAll -ErrorAction Stop
} catch {
Write-Output "Retry failed for: $($update.KBArticleID) - $_"
}

⚠️ Belangrijk: gebruik foutafhandeling zodat scripts niet stilzwijgend mislukken. (Zie ⚠️ Waar u op moet letten.)

Stap 3: pogingen registreren en volgen via het register

Gebruik het register om het aantal pogingen en de mislukte KB’s op te slaan voor snelle lokale zoekopdrachten. Zo houdt u blijvend zicht op de situatie, zelfs wanneer een endpoint offline is tijdens een storing van WSUS of RMM.

Voorbeeldscript in PowerShell om pogingen en tijdstempels van resultaten in het register bij te houden:

New-Item -Path "HKLM:\SOFTWARE\Org\PatchRetry" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\PatchRetry" -Name "LastRetry" -Value (Get-Date).ToString("u")
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\PatchRetry" -Name "FailedKBs" -Value ($failedUpdates.KBArticleID -join ", ")

Voorbeeldscript in PowerShell om de patchstatus via het register te controleren:

Get-ItemProperty -Path 'HKLM:\SOFTWARE\Org\PatchRetry'

Stap 4: pogingen automatiseren met geplande taken of NinjaOne RMM

Plan scripts op al uw endpoints om regelmatig de compliance te controleren en patches automatisch opnieuw te installeren op devices die niet compliant zijn. Met NinjaOne kunnen technici samengestelde voorwaarden maken, zodat patchpogingen na een mislukte uitvoering opnieuw worden toegepast.

Een terugkerende geplande taak maken met een bestaand .ps1-script via CMD:

schtasks /create /tn "RetryFailedPatches" /tr "powershell.exe -File C:\Scripts\PatchRetry.ps1" /sc daily /st 02:00 /ru SYSTEM

💡 Tip: sla het script uit stap 2 op als .ps1-bestand en laat uw opdracht naar dat pad verwijzen.

Registerwaarden automatisch bijwerken en succes of pogingslimiet bewaken via een PowerShell-script

$retryCount = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Org\PatchRetry").RetryCount
if ($retryCount -gt 3) {
# escalate or log for technician
}

Stap 5: GPO’s gebruiken voor updateinstellingen die nieuwe pogingen ondersteunen

Geautomatiseerde patchpogingen werken het best wanneer Windows Update zich voorspelbaar gedraagt. Technici kunnen GPO’s gebruiken om updates vooraf te downloaden, installaties te plannen en reboots uit te stellen binnen basisconfiguraties.

⚠️ Waarschuwing: het is verstandig om GPO’s lokaal te testen voordat u ze uitrolt. (Zie ⚠️ Waar u op moet letten.)

  1. Open de Groepsbeleidsbeheerconsole (gpmc.msc) en ga naar:

Computerconfiguratie > Beheersjablonen > Windows-onderdelen > Windows Update

  1. Configureer het volgende beleid:
InstellingenAanbevolen configuratieOmschrijving
Automatische updates configurerenSchakel het selectievakje naast Automatisch downloaden en installatie plannen in.Downloadt updates automatisch vooraf en installeert ze volgens een vast schema.
Locatie van de Microsoft-updateservice op intranet opgevenSelecteer Ingeschakeld en voer de HTTP(S)-URL van uw WSUS-server in bij de volgende velden:

  • Updateservice op intranet instellen voor het detecteren van updates.
  • Statistiekenserver op intranet instellen.
Geeft aan welke WSUS-server Automatische updates raadpleegt voor updates.
Geen automatisch opnieuw opstarten voor geplande installaties van automatische updatesConfigureer het beleid als Ingeschakeld.Schakelt automatisch opnieuw opstarten uit wanneer iemand is aangemeld, zodat sessies niet worden onderbroken.
Opnieuw vragen om opnieuw op te starten bij geplande installatiesConfigureer het beleid als Uitgeschakeld.Zorgt dat gebruikers tijdens hun sessie niet telkens worden gevraagd om na een geplande update opnieuw op te starten.
  1. Koppel de GPO aan een OU en voer daarna de volgende PowerShell-opdracht uit op een endpoint: gpupdate /force

⚠️ Waar u op moet letten

Risico’sMogelijke gevolgenOplossingen
De installatie van de module PSWindowsUpdate overslaanWindows Update-cmdlets gebruiken zonder de vereiste PowerShell-module leidt tot fouten.Laad de module PSWindowsUpdate door Import-Module PSWindowsUpdate in te voeren op een PowerShell-prompt.
Geen foutafhandeling in scripts opnemenScripts mislukken stilzwijgend zonder goede foutafhandeling, waardoor technici moeten raden wat er misging.Gebruik foutafhandeling in PowerShell in uw scripts voor betere documentatie wanneer er fouten optreden.
Ongeteste GPO’s uitrollenOngeteste GPO’s kunnen onjuiste configuraties bevatten die endpoints na uitrol ernstig kunnen verstoren.Test GPO’s lokaal in een gecontroleerde omgeving voordat u ze in de hele omgeving uitrolt.

Aandachtspunten bij het automatiseren van patchpogingen voor mislukte updates

Bij het automatiseren van patchpogingen is een vlotte overgang tussen de stappen cruciaal, want één hapering kan al fouten veroorzaken. Met de volgende aandachtspunten bepalen scripts beter welke stap ze moeten nemen, waardoor meer pogingen slagen.

Pogingslimieten afdwingen

Pogingslimieten in het register voorkomen oneindige loops en een stortvloed aan tickets. Stel per uitvoering een verhoging in om de wachttijd na elke mislukte poging te verlengen. Zodra het maximale aantal pogingen is bereikt, voorkomen de limieten dat scripts opnieuw worden uitgevoerd en wordt de kwestie eenmalig geëscaleerd.

De Windows Update-service herstarten

Patches kunnen mislukken wanneer Windows Update (wuauserv) onbereikbaar is en een snelle herstart van de service lost dat vaak op. Het is daarom verstandig om Windows Update te herstarten voordat u een nieuwe poging begint.

  • Voorbeeldscript in PowerShell om wuauserv te herstarten: Restart-Service -Name wuauserv

Oplossing voor offline devices

Offline devices verbruiken snel alle pogingen, waardoor scripts ze helemaal overslaan. Via RMM-platformen zoals NinjaOne kunnen technici een voorwaarde op het scriptresultaat instellen om het buiten piekuren opnieuw te proberen of een reboot uit te voeren.

Patchbronnen valideren

Voordat een nieuwe poging start, moeten scripts controleren of de patchbron bereikbaar is, want onbereikbare bronnen zijn vaak de oorzaak van fouten. Blijkt de bron niet beschikbaar, las dan een korte wachttijd in maar tel dit niet als mislukte poging. Mislukt één KB, sla die dan tijdelijk over, ga verder met de andere patches en probeer het later opnieuw.

Quick-start guide

NinjaOne biedt verschillende functies om patchbeheer te automatiseren en handmatig ingrijpen te beperken:

1. Patch Intelligence AI

Beoordeelt elke zes uur automatisch de risico’s van patches

  • Kan patches op basis van feedback uit de community verplaatsen tussen de statussen goedgekeurd, handmatig en afgewezen
  • Helpt risico’s van mogelijk problematische patches te beperken

2. Strategieën voor goedkeuring en nieuwe pogingen

Meerdere niveaus van patchgoedkeuring:

  • Overrides op deviceniveau
  • Overrides op beleidsniveau
  • Globale goedkeuringen/afwijzingen vooraf
  • Kan patches automatisch goedkeuren na een opgegeven aantal dagen (tot 30 dagen voor updates, 365 dagen voor functie-updates)
  • Maakt handmatige goedkeuring of afwijzing van patches mogelijk op KB-nummer of patch-ID

3. Ring deployment

Gefaseerde uitrol van patches om risico’s te beperken

  • Maak devicegroepen voor verschillende deployment rings
  • Test patches op een kleine groep devices vóór een bredere uitrol

4. Patches plannen en opnieuw proberen

Aanbevolen wordt om scan- en updatecycli minstens een uur uit elkaar te plannen

  • Scancycli draaien vóór de installatiecycli
  • Instelbare rebootopties en meldingen

Problemen oplossen bij het automatiseren van scripts voor patchpogingen

Probleem 1: geen activiteit bij nieuwe pogingen

Zonder voldoende rechten wordt de retrylogica niet uitgevoerd en ziet u geen enkele activiteit. Controleer als oplossing of het script als SYSTEM draait of de hoogste rechten heeft. Valideer daarnaast de syntaxis van uw script en controleer of alle opgegeven paden bestaan.

Probleem 2: update niet gevonden

Controleer of de ontbrekende update beschikbaar is via de bron die u hebt opgegeven. Overweeg alternatieve bronnen zoals Windows Update in plaats van Windows Server Update Services (WSUS) om te voorkomen dat pogingen verloren gaan aan nutteloze zoekopdrachten.

Probleem 3: updates mislukken telkens opnieuw

Combineer uw pogingen met de inzichten uit de Windows Update-logboeken, zodat u de fouten binnen mislukte patches precies kunt aanwijzen.

  • Voorbeeldscript in PowerShell om de Windows Update-logboeken te raadplegen:

Import-Module PSWindowsUpdate

Get-WindowsUpdateLog

Probleem 4: reboot-loop

Updates vragen soms om een reboot van het device voordat ze worden toegepast en afsluiten heeft niet hetzelfde effect. Mist u dat moment, dan belandt u snel in een cyclus waarin u patches opnieuw toepast zonder zichtbaar resultaat. Controleer daarom of een endpoint om een herstart vraagt, bevestig die en probeer de update daarna opnieuw.

NinjaOne-services die het automatiseren van patchpogingen vereenvoudigen

NinjaOne helpt bij het automatiseren van patchopdrachten en herstelacties om compliance te waarborgen en handmatig ingrijpen te beperken. Hier zijn enkele functies van NinjaOne waarmee u het automatiseren van patchpogingen op schaal eenvoudiger maakt.

  • Geplande taak via beleid. Gebruik de mogelijkheden van NinjaOne voor geplande automatisering om nieuwe pogingen binnen bepaalde intervallen over devicegroepen in te stellen.
  • Dashboard voor patchbeheer. Het dashboard van NinjaOne deelt devices in op mislukte, geslaagde en openstaande patches voor meer inzicht. Technici kunnen via het dashboard ook eenvoudig aangepaste patchrapporten genereren.
  • Samengestelde voorwaarden. Maak aangepaste triggers voor automatisering, zoals het versturen van meldingen, het starten van scripts of het escaleren van zaken, op basis van voorwaarden voor scriptresultaten.
  • Scripts op afstand uitvoeren. Voer scripts op afstand en op schaal uit, zodat mislukte patches in de hele omgeving consistent opnieuw worden geprobeerd.

Automatiseer uw patchdocumentatie voor efficiënte foutafhandeling.

→ Ontdek NinjaOne voor patchbeheer

Automatiseer het herstel van mislukte patches voor maximale beschikbaarheid

Van het raadplegen van de updategeschiedenis tot het afdwingen van basisbeleid: deze gids geeft technici een stevige basis voor automatisering. Met NinjaOne voor monitoring, scriptuitrol en planning kunt u de logica voor patchpogingen automatiseren binnen een enkel dashboard.

Door automatiseringsstrategieën samen te brengen in één centraal platform, wordt het hele automatiseringskader proactief en kunt u snel herstellen zodra er problemen worden gedetecteerd. Dat beperkt uitvaltijd, verlaagt het aantal tickets en zorgt voor consistente patch compliance op al uw endpoints.

Gerelateerde onderwerpen:

FAQs

U kunt patchpogingen automatiseren met PowerShell-scripts die mislukte updates opsporen, de mislukte KB’s doorlopen en ze opnieuw installeren via de module PSWindowsUpdate. Met foutafhandeling en retrylogica verloopt het herstel betrouwbaar en zonder handmatig werk.

Patches mislukken meestal door netwerkproblemen, vergrendelde systemen en conflicten tussen services. Geautomatiseerde retrylogica beperkt die fouten door ze vroeg te detecteren, de installatie opnieuw te proberen, zo nodig services te herstarten en elke poging te registreren voor inzicht.

U kunt het aantal pogingen, tijdstempels en mislukte KB’s opslaan in het Windows-register. Die blijvende registratie voorkomt oneindige loops, ondersteunt pogingslimieten en maakt nauwkeurige probleemoplossing op al uw endpoints mogelijk.

Ja. Met geplande taken, GPO-instellingen en RMM-platformen zoals NinjaOne kunt u scripts uitrollen, updatebeleid afdwingen en pogingen op schaal uitvoeren over devicegroepen met consistente automatiseringsregels.

De module PSWindowsUpdate is nodig om Windows-updates op te vragen, te installeren en opnieuw te proberen. Zonder die module mislukken op PowerShell gebaseerde patchscripts of geven ze onvolledige resultaten.

GPO’s zorgen voor voorspelbaar updategedrag door updates vooraf te downloaden, installaties te plannen, reboots te beheren en WSUS-bronnen vast te leggen. Zo ontstaat een omgeving waarin retrylogica consistent werkt.

Tools van derden, zoals NinjaOne RMM, bieden functionaliteit om de bekende hiaten op te vullen die IT-teams bij Intune tegenkomen. Denk aan het patchen van applicaties van derden, dekking van meerdere platformen zoals macOS en Linux, en remote support en probleemoplossing, die Intune zelf niet biedt.

Dit vindt u misschien ook leuk

Klaar om de moeilijkste delen van IT te vereenvoudigen?