Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The following powershell script toggles the Internet Explorer proxy status between the following values:
- Automatically detect settings
- Explicit Proxy Server
as shown in the following screenshots:
remember that after executing the script, Internet Explorer must be restarted.
this script is a widely based on the work of the following guys (thank you!):
I tested this script with Internet Explorer 11 on Windows 8.1, but I think that is shoud work with previous versions too…
# This function toggle between the following Internet Explorer Settings
# Explicit Proxy Disabled and automatically detect proxy set to ON
# Explicit proxy Enabled and automatically detect proxy set to OFF
#provide your proxy here
$proxyServerToDefine = "99.99.99.99:80"
function Set-AutomaticallyDetectProxySettings ($enable)
{
# Read connection settings from Internet Explorer.
$regKeyPath = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\"
$conSet = $(Get-ItemProperty $regKeyPath).DefaultConnectionSettings
# Index into DefaultConnectionSettings where the relevant flag resides.
$flagIndex = 8
# Bit inside the relevant flag which indicates whether or not to enable automatically detect proxy settings.
$autoProxyFlag = 8
if ($enable)
{
if ($($conSet[$flagIndex] -band $autoProxyFlag) -eq $autoProxyFlag)
{
}
else
{
Write-Host "Enabling 'Automatically detect proxy settings'."
$conSet[$flagIndex] = $conSet[$flagIndex] -bor $autoProxyFlag
$conSet[4]++
Set-ItemProperty -Path $regKeyPath -Name DefaultConnectionSettings -Value $conSet
}
}
else
{
if ($($conSet[$flagIndex] -band $autoProxyFlag) -eq $autoProxyFlag)
{
# 'Automatically detect proxy settings' was enabled, adding one disables it.
Write-Host "Disabling 'Automatically detect proxy settings'."
$mask = -bnot $autoProxyFlag
$conSet[$flagIndex] = $conSet[$flagIndex] -band $mask
$conSet[4]++
Set-ItemProperty -Path $regKeyPath -Name DefaultConnectionSettings -Value $conSet
}
}
$conSet = $(Get-ItemProperty $regKeyPath).DefaultConnectionSettings
if ($($conSet[$flagIndex] -band $autoProxyFlag) -ne $autoProxyFlag)
{
Write-Host "'Automatically detect proxy settings' is disabled."
}
else
{
Write-Host "'Automatically detect proxy settings' is enabled."
}
}
$regKey="HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
$proxyServer = ""
Write-Host "Retrieve the proxy server ..."
$proxyServer = Get-ItemProperty -path $regKey ProxyServer -ErrorAction SilentlyContinue
Write-Host $proxyServer
if([string]::IsNullOrEmpty($proxyServer))
{
Write-Host "Proxy is actually disabled"
Set-AutomaticallyDetectProxySettings ($false)
Set-ItemProperty -path $regKey ProxyEnable -value 1
Set-ItemProperty -path $regKey ProxyServer -value $proxyServerToDefine
Write-Host "Proxy is now enabled"
}
else
{
Write-Host "Proxy is actually enabled"
Set-AutomaticallyDetectProxySettings ($true)
Set-ItemProperty -path $regKey ProxyEnable -value 0
Remove-ItemProperty -path $regKey -name ProxyServer
Write-Host "Proxy is now disabled"
}