Africa Studio - stock.adobe.com

So verwalten Sie Windows-Updates mit PowerShell

Mit PowerShell können Sie die Installation von Updates effizient steuern und automatisieren. Wir erklären in diesem Artikel, welche Tools Sie benötigen und wie sie funktionieren.

PowerShell wird auch in Zukunft eines der wichtigsten Werkzeuge zum Verwalten von Windows bleiben. Das Planen, Installieren und Testen von Updates mit Windows Server Update Services (WSUS) gehört zu den täglichen Aufgaben vieler Administratoren und lässt sich ebenfalls über PowerShell abwickeln.

In den aktuellen Versionen von Windows 10 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

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-Komponenten > Windows Update vor.

Abbildung 1: In der PowerShell können Sie sich die letzten Installationen anzeigen lassen und neue Updates installieren.
Abbildung 1: In der PowerShell können Sie sich die letzten Installationen anzeigen lassen und neue Updates installieren.

Die letzten installierten Updates sehen Sie in PowerShell mit Get-WULastInstallationDate ein, den letzten, erfolgreichen Scanvorgang mit Get-WULastScanSuccessDate.

Neues PowerShell-Modul PSWindowsUpdate installieren

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 11 nicht 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

WSUS mit der PowerShell verwalten

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.

Windows-Updates in der Eingabeaufforderung und PowerShell steuern

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

Abbildung 2: Mit wusa.exe lassen sich in Windows Updates auch in der Eingabeaufforderung installieren und deinstallieren.
Abbildung 2: Mit wusa.exe lassen sich in Windows Updates auch in der Eingabeaufforderung installieren und deinstallieren.

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.

Abbildung 3: Anzeigen der installierten Updates in der Eingabeaufforderung und PowerShell.
Abbildung 3: Anzeigen der installierten Updates in der Eingabeaufforderung und PowerShell.

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.

Abbildung 4: Anzeigen der installierten Windows-Updates eines Servers in der PowerShell.
Abbildung 4: Anzeigen der installierten Windows-Updates eines Servers in der PowerShell.

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.

Erfahren Sie mehr über Serverbetriebssysteme

ComputerWeekly.de
Close