How to integrate Edge MSI directly into the image

Mr. Yu

Member
Messages
314
Reaction score
24
Even after I removed the Edge Update component using NTLite, updating Edge still creates a new Update folder. I can only use HiBit Uninstaller to forcefully delete the Update folder and perform a deep scan for leftovers. However, this is irreversible, and I can no longer install the Edge MSI.
Is there a method similar to WMP11 Slipstreamer that can directly integrate the Edge MSI into the image, replacing files and registry entries? This way, I can get an image containing the latest Edge without the Update component.
 
To integrate Edge's MSI to an offline image (not as a Post-Setup task) requires one of two methods:

1. Install the latest Edge browser on a clean system, and sysprep/generalize the image. With the captured image, you can remove Edge Updater using NTLite.

2. Install the latest Edge browser on a clean system, and perform an extended "diff" of updated files and folders, and capture all relevant registry updates (which may include component store metadata).

abbodi has done this for VC++ and DX9 run-times as .WA files.

But he mentions it's a lot of work (presumably there's some automation at this point). NTLite itself doesn't support adding .WA files, but the overall principle is the same. You have to xcopy files into a mounted image (hopefully preserving the right permissions) and import a set of .reg files that match the captured reg updates.

A major challenge is how would you automate the second method? There is no off-the-shelf tool to perform this work.
 
NTLite can't completely remove components from the repackaged system. The new webview2 component can be deleted, but the update component remains in HKEY_CURRENT_USER\SOFTWARE\Microsoft\EdgeUpdate and other locations. Many leftovers can't be cleaned up.
Let me try the second method. It seems a bit more complicated. However, I have to stop at Edge version 136 to allow the installation of Manifest V2 extensions.
 
There is an old thread where I discussed this with Garlin, no need to integrate an update, this command still works on 24H2, and used it for 10 also.

Got this in a ps1 script.

Code:
Start-Process -FilePath "C:\Program Files (x86)\Microsoft\EdgeUpdate\MicrosoftEdgeUpdate.exe" -argumentlist "/silent /install appguid={56EB18F8-B008-4CBD-B6D2-8C97FE7E9062}&appname=Microsoft%20Edge&needsadmin=True"

First run after install.

1755927038005.png
 
Start-Process -FilePath "C:\Program Files (x86)\Microsoft\EdgeUpdate\MicrosoftEdgeUpdate.exe" -argumentlist "/silent /install appguid={56EB18F8-B008-4CBD-B6D2-8C97FE7E9062}&appname=Microsoft%20Edge&needsadmin=True"
Thank you, I am testing in a virtual machine, running the script and pausing for one hour. One hour later, Edge did not update. But when I clicked on 'About', Edge started detecting the new version and automatically updated it. I cannot guarantee that I will not click on 'About' again. After repackaging, I used ntlite to delete the Edge update files and manually cleaned up the remaining registry. As of now, it no longer updates automatically, and the "About" prompt indicates that this component cannot be created: error code 3.
I also found that it secretly installed the game assistant. I didn't run it, but it took up 2GB of memory and the task manager showed a large number of renderer processes. Before this, I had already deleted all UWP files. I cannot prevent it from automatically installing again unless LTSC is used. It has become very bloated now.
 
abbodi86's reg hack will prevent EdgeUpdater from finding anything to update.
Code:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EdgeUpdateDev\CdpNames]
"msedge-stable-win-x64"="msedge-internal-win-x64"
"msedge-stable-win-x86"="msedge-internal-win-x86"
"msedge-stable-win-x64-zdp"="msedge-internal-win-x64"
"msedge-stable-win-x86-zdp"="msedge-internal-win-x86"
"msedge-stable-win-x64-critical"="msedge-internal-win-x64"
"msedge-stable-win-x86-critical"="msedge-internal-win-x86"
"msedgeupdate-stable-win-x64"="msedge-internal-win-x64"
"msedgeupdate-stable-win-x86"="msedge-internal-win-x86"
"msedgewebview-stable-win-x64"="msedge-internal-win-x64"
"msedgewebview-stable-win-x86"="msedge-internal-win-x86"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\EdgeUpdateDev\CdpNames]
"msedge-stable-win-x64"="msedge-internal-win-x64"
"msedge-stable-win-x86"="msedge-internal-win-x86"
"msedge-stable-win-x64-zdp"="msedge-internal-win-x64"
"msedge-stable-win-x86-zdp"="msedge-internal-win-x86"
"msedge-stable-win-x64-critical"="msedge-internal-win-x64"
"msedge-stable-win-x86-critical"="msedge-internal-win-x86"
"msedgeupdate-stable-win-x64"="msedge-internal-win-x64"
"msedgeupdate-stable-win-x86"="msedge-internal-win-x86"
"msedgewebview-stable-win-x64"="msedge-internal-win-x64"
"msedgewebview-stable-win-x86"="msedge-internal-win-x86"
 
Thank you, I am testing in a virtual machine, running the script and pausing for one hour. One hour later, Edge did not update. But when I clicked on 'About', Edge started detecting the new version and automatically updated it. I cannot guarantee that I will not click on 'About' again. After repackaging, I used ntlite to delete the Edge update files and manually cleaned up the remaining registry. As of now, it no longer updates automatically, and the "About" prompt indicates that this component cannot be created: error code 3.
I also found that it secretly installed the game assistant. I didn't run it, but it took up 2GB of memory and the task manager showed a large number of renderer processes. Before this, I had already deleted all UWP files. I cannot prevent it from automatically installing again unless LTSC is used. It has become very bloated now.
Odd, this works fine for me, and is documented officially on Microsoft's learn website. did you try it with no components removed? My only guess at this point is you may have removed something that prevents the command from working, such as of course Edge updater.
 
Back
Top