Windows 10 Update per Powershell

Reinhard77

Lieutenant
Registriert
Feb. 2019
Beiträge
889
Hallo,

mit einem Script will ich die Windows Updates automatisieren. Es ist ein funktionierendes Script vorhanden, was auch soweit funktioniert. Nur leider nicht so, wie es soll:

Wenn z.B. als Ausgangsversion Win 10 2004 vorhanden ist und das Script per Powershell die Updates lädt dann nur bis 20H2. Alles, was danach kam, wird nicht installiert. Also 21H2 und nun 22H2

Ich dachte ja, es liegt daran, dass dann immer Windows 11 als Update angeboten wird und man über die GUI dann erst dieses Angebot ablehnen muss, um dann das nächste Funktionsupdate angezeigt zu bekommen.

Wer weiß, woran es liegt?
 
Sollen wir Rätsel raten?

Zeig erstmal dein Script damit man weiß, was du versuchst...
 
Die Version 2004 hat Support Ende seit 09.2021, keine Ahnung ob das wichtig ist.
Obwohl die 2004 (20H1) heute immer noch die Basis ist, war das letzte große Update.
Ergänzung ()

Ne, Dezember 21 war's:
Serviceende für Windows 10, Version 2004 (alle Editionen)

Diese Editionen erhalten nach dem 14. Dezember 2021 keine Sicherheitsupdates mehr.
 
Rickmer schrieb:
Sollen wir Rätsel raten?

Zeig erstmal dein Script damit man weiß, was du versuchst...

Geht nicht. Hab ich nicht hier. Waren aber standart Befehle, die man überall im Netz findet und es war kein extra Modul geladen.

Nickel schrieb:
Die Version 2004 hat Support Ende seit 09.2021, keine Ahnung ob das wichtig ist.
Obwohl die 2004 (20H1) heute immer noch die Basis ist, war das letzte große Update.
Ergänzung ()

Ne, Dezember 21 war's:

War nur eine Beispiel. Ist doch egal welche Version. Es geht um's Prinzip.
 
Reinhard77 schrieb:
Geht nicht. Hab ich nicht hier. Waren aber standart Befehle, die man überall im Netz findet
Okay, aber geht nicht.

Sorry, aber ohne Befehle ist die Diskussion echt müßig.
 
  • Gefällt mir
Reaktionen: redjack1000
Inplace-Upgrade über ein aktuelles Installationsmedium (kann auch irgendwo im lokalen Netz auf nem Share liegen).

Wird dir denn ein Upgrade auf 21H2/22H2 angeboten, wenn du mal lokal auf nem Rechner selber nach Updates suchst?
 
kartoffelpü schrieb:
Wird dir denn ein Upgrade auf 21H2/22H2 angeboten, wenn du mal lokal auf nem Rechner selber nach Updates suchst?

Ja, aber erst nachdem ich das Windows 11 Angebot abgelehnt habe.
Ergänzung ()

kartoffelpü schrieb:
tollertyp schrieb:
Okay, aber geht nicht.

Sorry, aber ohne Befehle ist die Diskussion echt müßig.

Wenn du unbedingt was sehen willst, hier habe mir eben eine neues gebastelt, was ein Modul nachlädt.
Dann wollte ich die Abfrage automatisieren, die erscheint, wenn ich dieses Modul laden will (und da komme ich gerade nicht weiter!):

PowerShell:
#Windows Updates über das Modul PSWindowsUpdate explizit laden und installieren

Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force

sleep 5

SetForegroundWindow

My.Computer.Keyboard.SendKeys({ENTER})

Install-Module PSWindowsUpdate

#Get-WindowsUpdate -AcceptAll -Install -AutoReboot

Get-WindowsUpdate -Install -KBArticleID 'KB5018482'

Wie du sehen kannst, habe ich auch bereits eine Lösung gefunden, wie ich dieses Problem lösen kann. Einfach indem ich explizit die Updates, die fehlen, einzeln per Befehl hinterherschiebe. Aber ich dachte, es geht vielleicht noch eleganter..
 
Zuletzt bearbeitet:
kartoffelpü schrieb:
Dann setz per Policy eine Zielversion bzw. blockiere das Win11-Angebot:
https://www.pdq.com/blog/how-to-block-the-windows-11-upgrade/

Gibt bestimmt noch andere Möglichkeiten.

Ja Super.

Habe nun folgenden Code erstellt, der erstmal die Werte in der Registry anlegt und der funktioniert:

PowerShell:
if (!(Test-Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate)) {
    New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows -Name WindowsUpdate
}
New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate -Name ProductVersion -Value "Windows 10" -Type "String"
New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate -Name TargetReleaseVersion -Value 1 -Type "DWord"
New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate -Name TargetReleaseVersionInfo -Value "22H2" -Type "String"

Werde ich morgen mit dem Script zusammen dann testen. Hoffentlich erkennt dann Windows, dass neue Updates für Windows 10 geladen werden sollen. Für heute reicht es erstmal.
Ergänzung ()

Das hier wäre übrigens die kurzform einer Variante mit expliziten laden der Updates (musste nur das -Force noch eintragen):

PowerShell:
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Install-Module PSWindowsUpdate -Force

Get-WindowsUpdate -Install -KBArticleID 'KB5018482'
 
Zuletzt bearbeitet:
Was ist eigtl. der Sinn bei der Sache, Updates werden doch eh automatisch geladen,
bzw zumindest wird man max 2 mal im Monat darauf hingewiesen, dass man was anklicken muss/kann?
 
Doofe Frage: Hast du dir mal wsusoffline angeschaut?
Ist nicht ganz was du willst, ich weiß, aber vielleicht findest du da ja auch etwas Inspiration?
 
Zurück
Oben