Quick Links

Windows Server comes with default "Enhanced Security Configuration" protections for Internet Explorer that block websites that aren't trusted. The problem? This blocks you from installing a proper browser like Chrome and getting on with the rest of your job.

Disabling IE Protections

The way to properly disable IE Enhanced Security Configuration is to open up the Server Manager app, and then click "Configure this local server."

Click "Configure this local server" in the Server Manager app

Next, under "Properties," find IE Enhanced Security Configuration and turn it off.

Under "Properties," find IE Enhanced Security Configuration and turn it off

From there, you can open up IE, download the Chrome/Firefox installer, and get on with your day.

If that doesn't work, you can try manually enabling file downloads under Internet Options > Security > Custom Level > Downloads.

The Easy Way (with PowerShell)

Of course, there's a quicker way to do this using a PowerShell script.

The following script will download the Chrome installer and run it, and Chrome will be auto-installed. You can then launch it from the desktop icon or the start menu.

$Path = $env:TEMP; $Installer = "chrome_installer.exe"; Invoke-WebRequest "http://dl.google.com/chrome/chrome_installer.exe" -OutFile $Path$Installer; Start-Process -FilePath $Path$Installer -Args "/silent /install" -Verb RunAs -Wait; Remove-Item $Path$Installer

If you're using Windows Server 2012, you can use this script instead:

$LocalTempDir = $env:TEMP; $ChromeInstaller = "ChromeInstaller.exe"; (new-object System.Net.WebClient).DownloadFile('http://dl.google.com/chrome/install/375.126/chrome_installer.exe', "$LocalTempDir$ChromeInstaller"); & "$LocalTempDir$ChromeInstaller" /silent /install; $Process2Monitor = "ChromeInstaller"; Do { $ProcessesFound = Get-Process | ?{$Process2Monitor -contains $_.Name} | Select-Object -ExpandProperty Name; If ($ProcessesFound) { "Still running: $($ProcessesFound -join ', ')" | Write-Host; Start-Sleep -Seconds 2 } else { rm "$LocalTempDir$ChromeInstaller" -ErrorAction SilentlyContinue -Verbose } } Until (!$ProcessesFound)

Auto-Installing on AWS

If you're on AWS, then you're in luck, because you can automatically run commands on server creation using EC2 User Data.

When you create the server, you can upload a text file or just paste in the command. You can also automate this process if you're launching from the CLI.

When you create the server, you can upload a text file or just paste in the command

Then, all you need to do is paste the Powershell script within a <powershell> block, like so:

<powershell>
    

$Path = $env:TEMP; $Installer = "chrome_installer.exe"; Invoke-WebRequest "http://dl.google.com/chrome/chrome_installer.exe" -OutFile $Path$Installer; Start-Process -FilePath $Path$Installer -Args "/silent /install" -Verb RunAs -Wait; Remove-Item $Path$Installer

</powershell>