So installieren und verwalten Sie Windows-Updates mit PowerShell (PSWindowsUpdate)

Wenn Sie Windows-Updates über die Befehlszeile verwalten möchten, ist das PowerShell-Modul PSWindowsUpdate sehr praktisch. Es ermöglicht das Scannen, Herunterladen, Installieren und sogar Ausblenden oder Entfernen von Updates, ohne die grafische Benutzeroberfläche zu verwenden. Besonders hilfreich ist es bei einem skriptbasierten Ansatz, bei der Arbeit mit Windows-Servern oder im Remote-Betrieb.

Inhalt:

Installation des PSWindowsUpdate-Moduls

Zunächst muss das Modul aus der PowerShell-Galerie installiert werden. Führen Sie folgenden Befehl in einem PowerShell-Fenster mit Administratorrechten aus:

Install-Module -Name PSWindowsUpdate -Force

Möglicherweise werden Sie aufgefordert, dem Repository zu vertrauen – geben Sie einfach „J“ ein und drücken Sie die Eingabetaste.Überprüfen Sie anschließend die Installation mit folgendem Befehl:

Get-Package -Name PSWindowsUpdate

Wenn Sie einen extrem abgesicherten PC oder Server verwenden, müssen Sie möglicherweise zuerst die Ausführungsrichtlinie anpassen:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Force

In einigen Fällen, insbesondere bei älteren Windows-Versionen oder in Offline-Umgebungen, müssen Sie das Modul möglicherweise manuell herunterladen oder die Dateien übertragen – meistens ist dies jedoch nicht erforderlich. Nach der Installation können Sie es in Ihre Sitzung importieren:

Import-Module PSWindowsUpdate

Und vergewissern Sie sich, dass Ihnen die richtigen Befehle zur Verfügung stehen:

Get-Command -Module PSWindowsUpdate

Windows-Updates mit PowerShell scannen und herunterladen

Um zu sehen, welche Aktualisierungen erforderlich sind, führen Sie Folgendes aus:

Get-WindowsUpdate

oder der Alias:

Get-WUList

Hier werden die ausstehenden Updates aufgelistet. Beim ersten Mal kann eine Fehlermeldung wie „ Der Wert liegt außerhalb des erwarteten Bereichs“ erscheinen. Die genaue Ursache ist unklar – vermutlich ein Problem mit der Registrierung oder einer Komponente –, aber das Zurücksetzen der Windows Update-Komponenten hilft oft. Führen Sie dazu folgenden Befehl aus:

Reset-WUComponents -Verbose

Dieser Befehl setzt den Agenten zurück, registriert DLLs neu und stellt den WUServer-Dienst auf die Standardeinstellungen zurück, wodurch das Update-System quasi neu gestartet wird. Ein Versuch lohnt sich, falls Ihre Update-Prüfungen fehlerhaft funktionieren.

Um zu überprüfen, von wo Windows Update seine Daten bezieht (Microsoft-Server oder ein WSUS-Server), versuchen Sie Folgendes:

Get-WUServiceManager

Wenn Sie Einträge sehen, die auf einen lokalen WSUS-Server verweisen (wie im Beispiel mit http://MN-WSUS:8530 ), ist Ihre Konfiguration für interne Updates eingerichtet, nicht für Updates direkt von Microsoft.

Und wenn Sie Aktualisierungen von Microsoft Update (einschließlich Office, Treiber usw.) erhalten möchten, müssen Sie diesen Dienst explizit hinzufügen:

Add-WUServiceManager -ServiceID "7971f918-a847-4430-9279-4a52d1efe18d" -AddServiceFlag 7

Manchmal möchten Sie bestimmte Update-Kategorien ignorieren, z. B.Treiber oder bestimmte Wissensdatenbank-Artikel. Verwenden Sie dazu Folgendes:

Get-WUlist -NotCategory "Drivers" -NotTitle "OneDrive" -NotKBArticleID KB4489873

Und falls Sie einfach nur alle verfügbaren Updates herunterladen möchten, ohne sie bereits zu installieren, führen Sie Folgendes aus:

Get-WindowsUpdate -Download -AcceptAll

Diese Datei wird heruntergeladen, aber nicht installiert – Aktualisierungen landen im selben Ordner C:\Windows\SoftwareDistribution\Download. Praktisch, wenn Sie den Installationsprozess überprüfen oder auf mehrere Schritte verteilen möchten.

Windows-Updates mit PowerShell installieren

Sobald Sie die Updates heruntergeladen haben, oder falls Sie einfach alles auf einmal installieren möchten, können Sie die Installation automatisieren mit:

Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot

Dadurch werden alle verfügbaren Updates installiert, die Lizenzvereinbarungen akzeptiert und bei Bedarf ein Neustart durchgeführt. Möchten Sie einen Neustart planen oder einen automatischen Neustart verhindern? Weitere Optionen sind „Neustart ignorieren“ oder „Neustart planen“ mit Angabe bestimmter Zeiten.

Sie können auch ein Protokoll der durchgeführten Aktionen führen, was für die Fehlersuche oder Prüfungszwecke hilfreich ist:

Install-WindowsUpdate -AcceptAll -Install -AutoReboot | Out-File "C:\Logs\Update-$(Get-Date -Format yyyy-MM-dd).txt"

Wenn Sie schließlich nur bestimmte KB-Updates installieren möchten, geben Sie einfach deren IDs an:

Get-WindowsUpdate -KBArticleID KB2267602, KB4533002 -Install

Und falls Sie bestimmte Aktualisierungen überspringen müssen, fügen Sie -NotCategory, -NotTitle oder -NotKBArticleID hinzu :

Install-WindowsUpdate -NotCategory "Drivers" -NotTitle "OneDrive" -NotKBArticleID KB4011670 -AcceptAll -IgnoreReboot

Dient Get-WURebootStatuszur Überprüfung, ob ein Neustart ansteht oder geplant ist:

Get-WURebootStatus | Select RebootRequired, RebootScheduled

Windows-Updateverlauf mit PowerShell prüfen

Möchten Sie sehen, was bereits installiert ist? Verwenden Sie:

Get-WUHistory

Und um herauszufinden, wann eine bestimmte KB-Datei installiert wurde:

Get-WUHistory | Where-Object {$_. Title -match "KB4517389"} | Format-Table

Oder überprüfen Sie die Zeiten des letzten erfolgreichen Scans oder der Installation:

Get-WULastResults | Select-Object LastSearchSuccessDate, LastInstallationSuccessDate

Windows-Updates mit PowerShell deinstallieren

Falls ein Patch Probleme verursacht, können Sie ihn anhand seiner KB-Nummer entfernen:

Remove-WindowsUpdate -KBArticleID KB4489873 -NoRestart

Aber Vorsicht – die Deinstallation kann manchmal Abhängigkeiten beeinträchtigen, eignet sich aber gut zum Entfernen problematischer Updates.

Windows-Updates mithilfe von PowerShell ein- oder ausblenden

Um ein Update auszublenden (z. B.ein Treiberupdate, das Sie überspringen möchten), führen Sie Folgendes aus:

$HideList = "KB4489873", "KB4489243" Get-WindowsUpdate -KBArticleID $HideList -Hide

Und um versteckte Updates zu überprüfen:

Get-WindowsUpdate -IsHidden

Hier werden als ausgeblendet markierte Aktualisierungen mit einem „H“ im Status angezeigt. Um sie anzuzeigen, führen Sie einfach folgenden Befehl aus:

Get-WindowsUpdate -KBArticleID $HideList -Hidden -Hide:$false

Installieren von Windows-Updates auf Remotecomputern mit PowerShell

Für die Fernverwaltung mehrerer Rechner benötigen Sie WinRM, das aktiviert und konfiguriert sein muss (was andernfalls mitunter mühsam sein kann).Sobald dies erledigt ist, können Sie Befehle wie die folgenden ausführen:

Invoke-Command -ComputerName "server1", "server2" -ScriptBlock { Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Force Import-Module PSWindowsUpdate Enable-WURemoting } Invoke-Command -ComputerName "server1", "server2" -ScriptBlock { Install-WindowsUpdate -AcceptAll -AutoReboot }

Alternativ können Sie Aktualisierungen zu einem bestimmten Zeitpunkt planen, indem Sie -TriggerDate hinzufügen. Dies ist nützlich, wenn Sie die Benutzer während der Arbeitszeit nicht stören möchten.

Um den Update-Status auf entfernten Systemen schnell zu überprüfen, können Sie folgenden Befehl ausführen:

Get-WUHistory -ComputerName "server1" | Where-Object {$_. Title -match "KB404"}

Dieses Modul beschleunigt die Massenverwaltung enorm, insbesondere wenn man es mit einer Vielzahl von Windows-Servern oder Kernkonfigurationen ohne grafische Benutzeroberfläche zu tun hat.

Viele Benutzer berichten, dass diese Befehle beim ersten Ausführen manchmal nicht einwandfrei funktionieren – insbesondere bei Neuinstallationen oder nach Richtlinienänderungen. Ein erneutes Ausführen oder ein Neustart des Servers behebt das Problem jedoch meist. Wichtig ist, vor jeder Installation oder Deinstallation den aktuellen Status zu überprüfen.

Zusammenfassung

Die Verwaltung von Updates über PowerShell mit PSWindowsUpdate verläuft nicht immer reibungslos, ist aber deutlich flexibler als das manuelle Klicken. Falls die Befehle nicht sofort funktionieren, hilft oft das Zurücksetzen der Komponenten und das erneute Importieren der Module. Beachten Sie jedoch, dass einige Befehle Administratorrechte und eine korrekte Remote-Konfiguration für die Verwaltung erfordern.

Zusammenfassung

  • PSWindowsUpdate wurde mit Install-Module installiert.
  • Nach Updates suchen: Get-WindowsUpdate / Get-WUList
  • Windows-Updates herunterladen: Get-WindowsUpdate -Download
  • Updates installieren: Install-WindowsUpdate
  • Verlauf prüfen: Get-WUHistory
  • Updates nach Bedarf deinstallieren oder ausblenden
  • Verwalten Sie Updates auf Remote-Rechnern mit Invoke-Command und Enable-WURemoting.

Schlussgedanken

Ehrlich gesagt sind diese Befehle nicht perfekt – manchmal treten ohne ersichtlichen Grund Fehler auf. Sie sind aber eine große Hilfe, wenn es darum geht, Patches zu automatisieren oder Update-Probleme in großem Umfang zu beheben. Es lohnt sich definitiv, sich damit vertraut zu machen, wenn man mehrere Windows-Rechner verwaltet. Hoffentlich hilft das jemandem, ein paar Stunden zu sparen oder sich Ärger zu ersparen.