21H2 Automated Upgrade from 1909 onward

Wanted to share this script I use to push out the 21H2 inplace upgrade to workstations. I use Deploy with a good success rate on upgrading. Only very old builds of Win10 do not update with this, ymmv.

$21H2Source = "<iso network location folder>"
$21H2Dest = "<iso destination>"
$Exclude = Get-ChildItem -recurse $21H2Dest  
$21H2Arguments = "/Auto Upgrade /DynamicUpdate disable /Compat IgnoreWarning /EULA accept /showoobe none /Telemetry disable /CopyLogs <iso destination>"
Get-ChildItem $21H2Source -Recurse -Filter "Windows10_21H2.iso" | Copy-Item -Destination $21H2Dest -Verbose -Exclude $Exclude  
$driveletter = (Mount-DiskImage "<iso destination>\Windows10_21H2.iso" -PassThru | Get-Volume).DriveLetter  
Start-Process "${driveletter}:\setup.exe" -ArgumentList $21H2Arguments  



Date Votes
  • Hi Jarett,

    How old is "very old"?

    Our laptops are being used mostly remotely with occasional visits to the office. Because my predecessors paused updates to concentrate on getting them working reliably during the 2020 & 2021 lockdowns, a significant number of them still have 1909, 2004 and 20H2 - and they're stubbornly refusing to update their release through SCCM's Windows Servicing (they even fail to take most regular Windows Updates). I'm looking at a quick way to get them back onto a supported OS version and this could be useful.

  • I've seen good success with 1904/1909 and beyond. Anything older seems touch and go. Put one on a bench and give it a try.


Please sign in to leave a comment.

Didn't find what you were looking for?

New post