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.
- Installation des PSWindowsUpdate-Moduls
- Windows-Updates mit PowerShell scannen und herunterladen
- Windows-Updates mit PowerShell installieren
- Windows-Updateverlauf mit PowerShell prüfen
- Deinstallieren von Windows-Updates mit PowerShell
- So blenden Sie Windows-Updates mithilfe von PowerShell aus oder ein
- Installieren von Windows-Updates auf Remotecomputern mit PowerShell
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.