Windows 11 Upgrade Script?

Is there a script to upgrade to Windows 11? I know there was one I used to go from 7 to 10 so I assume that there should be one to go to 11 but I haven’t seen anyhting yet.

I aciidentally just told a client that I would script the upgrade for them, then realized the Cyberdrain script says “BLOCK windows 11” , not upgrade to Windows 11.

I haven’t tried but the update assistant also upgrades to 11. You should be able to substitute the URL unless they’ve changed something in it. URL for the Windows 11 one is https://go.microsoft.com/fwlink/?linkid=2171764

This is the one I use for 10, changed the URL for 11. Use at your own risk :slight_smile:

$workingdir = "c:\temp"
$url = "https://go.microsoft.com/fwlink/?linkid=2171764"
$file = "$($workingdir)\Win11Upgrade.exe"

If(!(test-path $workingdir))
{
New-Item -ItemType Directory -Force -Path $workingdir
}

Invoke-WebRequest -Uri $url -OutFile $file

Start-Process -FilePath $file -ArgumentList "/quietinstall /skipeula /auto upgrade /copylogs $workingdir"

@Jimmie thanks, running it in a VM right now. I’ll report back, but so far I can see it downloaded the Winn11Upgrade file into Temp and there are a couple of Windows Installer processes running

Sounds promising! Then it probably has the 30+ minute counter for reboot even though it’s silent lol.

Please report back, i’m curious about this one as well. :crossed_fingers:

I tried when 11 first came out and the command line options didn’t work on the 11 update assistant, but maybe they’ve updated it since. I believe they said they’d start pushing it on people this month, so if you’re not blocking it and the system is compatible (a lot are not), it should just happen.

First run failed. I remember when I was doing the Win 10 upgrades, on SOME systems, I had to run the one script that would download the Upgrade Assisstant, and a second script to run the downloaded file. It would not do it in one run for some reason on some systems

I am trying that with this now. It downloaded Win11Upgrade.exe, it ran various tasks for a few hours and I thought it was working. I had to go out so I left it overnight, and today I am still on Win 10.

If this does not work I will try it in interactive mode as mentioned above and see if I can get the error message

Just doing some more research on this, found this blurb in the new terms for Win 11:

This option is new starting with Windows 11. Specifying /EULA accept instructs Windows Setup that the end user license agreement has been accepted. Starting with Windows 11, acceptance of the Windows EULA is required before Windows Setup installation begins. By specifying /EULA accept you are agreeing that when applying this operating system either (1) the applicable Windows license was purchased though volume licensing, or (2) that you are accepting the relevant Microsoft Software License Terms. Windows Setup will return error MOSETUP_E_EULA_ACCEPT_REQUIRED (0xC190010E) if /EULA accept is not specified and (1) /Quiet is specified, or (2) if Windows Setup is started where user interaction is not supported. To learn more about licensing, see Microsoft License Terms.

The last part seems to say that it will always fail if you either specify /quiet or start the upgrade from somewhere user interaction is not supported, so I guess that includes a PS script?

If I am reading this right they have made it completely impossible to script?

I’m reading it differently, but I think the language is confusing. It still says the /EULA is used to suppress the Windows Setup end user agreement user experience, I just think the /eula accept is required instead of skipping it. Try changing this line for Windows 11.

Start-Process -FilePath $file -ArgumentList "/auto upgrade /quiet /eula accept /copylogs $workingdir"

Doesn’t work. Even running it in interactive mode from an elevated PS window open the EULA screen right away

I am starting over from scratch re-downloading the installer and using @jimmie s updated command line, just to be sure.

I realized that I hadn’t activated Windows in my VM so I have done that and am re-running the script.

Stay tuned

any update on this? I’d like to know if there’s a script possible so i can batch run to our clients with eligible PC’s for upgrading to 11 rather than touching each one by hand.

Hi Sean, there is no Syncro provided script that does this. These are the only Windows 11 related scripts in the library.

if anyone is still wondering about this.

May have cracked it…

$workingdir = “c:\temp”
$url = “https://go.microsoft.com/fwlink/?linkid=2171764
$file = “$($workingdir)\Win11Upgrade.exe”

If(!(test-path $workingdir))
{
New-Item -ItemType Directory -Force -Path $workingdir
}

Invoke-WebRequest -Uri $url -OutFile $file

Start-Process -FilePath $file -ArgumentList “/Install /MinimizeToTaskBar /QuietInstall /SkipEULA /copylogs $workingdir”

2 Likes

Thankyou so much for this @anon78235291
Tested this yesterday, and works extremely well.
:grinning: :beer:

1 Like