Microsoft Edge Preview (Good-bye Google Chrome, Hello Microsoft Chrome)
Microsoft Edge Preview has been around for a while, and I felt like doing a quick write up on it.
The short and skinny of it is that a single browser solution for enterprises is coming very soon, but you can begin to use this very stable browser in place of Google Chrome immediately (at least for your IT teams). If you aren't testing this browser out and looking towards moving to it, you should be. Microsoft has decided to use a Chromium base for Edge going into the future. This means we have a Microsoft version of Chrome available, which has Microsoft account tie ins in place of all the Google Account stuff (think Office 365). One major thing enterprises will love about it is that you basically have a version of Chrome (with all its compatibility) that also supports the Enterprise Site Mode List - so you can run sites requiring Internet Explorer through an Internet Explorer engine directly in the Chrome browser, leaving all other undefined sites to run in the native Chromium engine. There is no longer a need to run IE and Chrome side-by-side and force users to use one browser for one URL and a different for another, or keep track of special shortcuts to handle that for them. Bye-bye to both, let your Enterprise Site Mode List do all the magic for your users!
A set of Group Policy Templates is available, which should look very familiar to you if you have Google's GPO templates in place already, sub Microsoft Account for Google Account stuff. Find the GPO templates as well as MSI installers for the new version of Edge here.
The three settings of interest for the Enterprise Site Mode List and IE integration are shown below.
First, you must define your enterprise site mode list in GPO (Most places that this feature are of interest to are likely already doing this for IE11):
The setting is found at Computer Configuration/Policies/Administrative Templates/Windows Components/Internet Explorer/Use the Enterprise Site Mode List
Second, You can set this setting to either send all intranet sites to IE (why though?), or disable this to have it only open intranet sites in IE mode that are explicitly defined in the IE Mode Site List as shown below:
The setting is found at Computer Configuration/Policies/Administrative Templates/Microsoft Edge/Send all intranet sites to Internet Explorer
Third, you need to enable Internet Explorer Integration, and Configure the Integration feature to use Internet Explorer Mode (instead of just opening the sites in IE directly):
The setting is found at Computer Configuration/Policies/Administrative Templates/Microsoft Edge/Send all intranet sites to Internet Explorer
The result, is a Chromium (Chrome) browser opening the sites you want in IE mode (whichever IE engine you specify for the URL in the site list) in the same browser as sites rendering in the chromium engine. Below, I have the site whatsmybrowser.org defined to open in Internet Explorer 8 mode, and an IE icon in the address bar indicates the setting is working (as well just the browser detection site showing so):
For the detection method in your app package, you can use the following settings:
Version will vary based on the version you package at the time. Make sure you use a "greater than or equal to" operator for detection so that detection doesn't fail when the browser updates. If packaging the Dev version, use Edge Dev in the detection path in place of Edge Beta. Text version of path: %ProgramFiles(x86)%\Microsoft\Edge Beta\Application, exe name is: msedge.exe. Be sure to check the "This file or folder is associated with a 32-but application on 64-bit systems" checkbox as well.
I've put in a request to Patch My PC to add this to their 3rd party patching catalog, so if you utilize that tool in your ConfigMgr (SCCM) environment (check them out if not, patching automation is fantastic: PatchMyPC.com), you can up-vote the request here. I will also be trying to find a contact at Microsoft and asking them to add the product directly to the WSUS catalog as well.
I've included an installation script you can use to package up the Edge Beta version (should work for Dev and likely Canary builds, too), as well as 250x250 png images of the icons you can use to make Software Center look pretty (see the bottom of the page for the file attachments).
Update: As an added bonus, the new edge browser is available for Mac OS X as well, so this really allows an enterprise to standardize onto a single browser across their whole footprint. I will update this page with a Mac OS X installation script soon as well which you can utilize to package Edge Beta for your OS X clients if you are utilizing Parallels Mac Management for Microsoft SCCM (or possibly even JAMF).
Thanks for stopping by and enjoy!
Sean
########################################################### # Microsoft Edge (chromium based) Installation Script # Script By: Sean Huggans ########################################################### # Script Variables ########################## $AppName = "Edge Preview" $Version = "77.0.235.18" $AppVendorName = "Microsoft" $InstallerFile = "MicrosoftEdgeBetaEnterpriseX86.msi" if (Test-Path "C:\Program Files (x86)") { $InstallerFile = "MicrosoftEdgeBetaEnterpriseX64.msi" } $LogFile = "$($AppName)-$($Version)-Install.log" $LogDir = "C:\Windows\Logs\Software" $LogPath = "$($LogDir)\$($LogFile)" ########################## # Script Functions ########################## function Log-Action ($Message, $StampDateTime) { ################################ # Function Version 18.4.14.1 # Function by Sean Huggans ################################ New-Item -ItemType directory -Path $LogDir -Confirm:$false -Force | out-null if (($StampDateTime -eq $false) -or ($StampDateTime -eq "no")) { $Message | Out-File $LogPath -Append } else { "[ $(get-date -Format 'yyyy.MM.dd HH:mm:ss') ] $($Message)" | Out-File $LogPath -Append } } function ErrorOut-Script { Log-Action "Installation has failed. See above for details." exit } function Install-ApplicationFromMSI ($MSIFile) { Log-Action "Starting MSI Installation..." $InstallerProcess = start-process MSIExec -ArgumentList "/i ""$($PSScriptRoot)\$($MSIFile)"" /qn /l*v ""$($LogDir)\$($MSIFile.Replace('.msi',''))-$($Version)-MSIOutput.log""" -Wait -NoNewWindow -verbose -passthru if ($InstallerProcess.ExitCode -eq 0) { Log-Action "Finished MSI Installation successfully, see ""$($LogDir)\$($MSIFile.Replace('.msi',''))-$($Version)-MSIOutput.log"" for details." return $true } else { Log-Action "Error: MSI Installation exited with a non-zero error code $($InstallerProcess.ExitCode), see ""$($LogDir)\$($MSIFile.Replace('.msi',''))-$($Version)-MSIOutput.log"" for details." return $False } } ########################## # Execution Logic ########################## Log-Action -Message "=================================================================================================" -StampDateTime $False Log-Action -Message "= $($AppName) Installation | Version: $($Version)" -StampDateTime $False Log-Action -Message "=================================================================================================" -StampDateTime $False Log-Action -Message "Installation script started..." if ($(Install-ApplicationFromMSI -MSIFile $InstallerFile) -eq $true) { Log-Action -Message "Installation script completed." } else { ErrorOut-Script }