Jürgen Fälchle - stock.adobe.c
Wie Sie Windows-Updates mit PowerShell verwalten
Die PowerShell hilft dabei, die notwendigen Windows-Updates zu steuern und zu automatisieren. Dieser Beitrag erläutert, welche Tools Ihnen dabei helfen und wie sie funktionieren.
Eines der wichtigsten Tools, um Windows zu verwalten, ist PowerShell. Viele Administratoren müssen täglich die Updates mit Windows Server Update Services (WSUS) planen, installieren und testen. Das geht ebenfalls mithilfe von PowerShell.
In den aktuellen Versionen von Windows 10,Windows 11 und Windows Server 2019 steuern Admins Updates mit den Cmdlets aus dem Modul WindowsUpdateProvider. Sie können sich alle Befehle des Moduls mit dem nachfolgenden Code ausgeben lassen:
Get-Command -Module WindowsUpdateProvider
Wie Sie Aktualisierungen finden und installieren
Sie können Updates mit PowerShell auf Rechnern mit Windows 10 oder 11 und Windows Server 2019 oder 2022 installieren und sie von Update-Servern, aber auch über WSUS abrufen. Außerdem funktionieren die hier dargestellten Methoden für Core-Server mit einer aktuellen Windows-Server-Version.
Die Cmdlets nutzen dazu die Update-Quelle, die Sie in den Gruppenrichtlinien festgelegt haben. Sie müssen keine Module eigens installieren, so dass sich Update-Skripte sehr einfach in Anmeldeskripte einbinden lassen.
Um nach einer aktuellen Version zu suchen, verwenden Sie das Cmdlet Start-WUScan. Ohne eine spezielle Konfiguration der Gruppenrichtlinien baut der Befehl standardmäßig eine Verbindung zu den Update-Servern bei Microsoft auf. Danach lassen sich die Updates mit Install-WUUpdates über die PowerShell installieren.
Die Konfiguration der automatischen Updates in den Gruppenrichtlinien nehmen Sie in der Gruppenrichtlinienverwaltung unter Computerkonfiguration > Richtlinien > Administrative Vorlagen > Windows-Komponente > Windows Update vor.
Die letzten installierten Updates sehen Sie in PowerShell mit Get-WULastInstallationDate ein, den letzten, erfolgreichen Scanvorgang mit Get-WULastScanSuccessDate.
Installation des neuen PowerShell-Moduls PSWindowsUpdate
Das Standard-PowerShell-Modul WindowsUpdateProvider funktioniert auf Servern zuverlässig, bietet aber nicht sehr viele Funktionen und funktioniert auf Arbeitsstationen mit Windows 10 und Windows 11nicht so gut wie auf Servern. Um diese Lücke zu füllen, gibt es ein zusätzliches Modul namens PSWindowsUpdate. Sie müssen dieses extra installieren, da es nicht von Microsoft selbst stammt:
Install-Module -Name PSWindowsUpdate -Force
Um sich die Cmdlets für das Modul anzeigen zu lassen, benutzen Sie den folgenden Befehl:
Get-Command -Module PSWindowsUpdate
Um nach Updates zu suchen und diese zu installieren, können folgende Befehle verwendet werden:
Get-WindowsUpdate -MicrosoftUpdate -Verbose
Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot
Verwaltung von WSUS mit der PowerShell
Auch der Serverdienst für die Verwaltung von Updates lässt sich in der PowerShell steuern. Hier stehen in Windows Server 2019 und 2022 verschiedene Cmdlets zur Verfügung.
Wer WSUS in der PowerShell verwalten will, kann sich mit dem Befehl get-command -module updateservices alle Cmdlets anzeigen lassen, mit denen man Windows Server Update Services verwalten kann:
- Add-WsusComputer fügt einen PC einer bestimmten WSUS-Gruppe hinzu.
- Approve-WsusUpdate gibt Updates frei.
- Deny-WsusUpdate verweigert Updates.
- Get-WsusClassification zeigt alle verfügbaren Klassifikationen an.
- Get-WsusComputer zeigt WSUS-Clients und -Computer an. Hier sind die angebundenen Geräte, deren Betriebssystem und der Zeitpunkt der letzten Statusübermittlung zu sehen.
- Get-WsusProduct zeigt eine Liste aller Programme an, für die der Server Patches bereithält.
- Get-WsusServer zeigt alle WSUS-Server im Netzwerk an.
- Get-WsusUpdate zeigt Informationen zu Updates an.
- Invoke-WsusServerCleanup startet den Bereinigungsvorgang.
- Set-WsusClassification fügt Klassifikationen zu WSUS hinzu.
- Set-WsusProduct fügt Produkte zu WSUS hinzu.
- Set-WsusServerSynchronization steuert die WSUS-Synchronisierung.
Steuerung von Windows-Updates in der Eingabeaufforderung und PowerShell
Ein weiteres wichtiges Werkzeug, um Updates per Skript zu installieren, ist das Befehlszeilen-Tool wusa.exe. Die Syntax dazu ist:
Wusa.exe <MSU-Datei des Patches> /quiet /norestart
Die Option /quiet installiert ohne Rückmeldung, durch die Option /norestart startet der Computer nicht neu, auch wenn der Patch das fordert. Mit /uninstall deinstallieren sie Updates.
Wusa.exe /uninstall /kb:<Knowledgebase-Nummer des Patches>
Der Befehl wmic qfe zeigt in der PowerShell und Eingabeaufforderung die installierten Updates an.
Auch PowerShell kann die installierten Updates ausgeben. Dazu wird das Cmdlet get-hotfix verwendet. Das Cmdlet unterstützt den Parameter -computername <Name des Rechners>, so dass die Abfrage auch über das Netzwerk erfolgen kann.
Die verschiedenen Werkzeuge lassen sich auch miteinander kombinieren, so dass in der PowerShell und der Eingabeaufforderung sehr flexible Möglichkeiten zur Verfügung stehen, um Updates zu installieren und zu deinstallieren. Auch das Einholen von Informationen zu den installierten Updates ist problemlos möglich.