Files
powershell/ModifyProxySettings.ps1
2026-02-11 14:24:03 +01:00

67 lines
2.1 KiB
PowerShell

#requires -runasadministrator
<#
.Synopsis
Modify proxy settings for the current user.
.DESCRIPTION
Modify proxy settings for the current user modifying the windows registry.
.EXAMPLE
Get the proxy settings for the current user
PS D:\> get-proxy
ProxyServer ProxyEnable
----------- -----------
0
.EXAMPLE
Set the proxy server for the current user. Test the address and if the TCP Port is open before applying the settings.
proxy squid.server.com 3128
set-proxy -server "yourproxy.server.com" -port 3128
.EXAMPLE
Remove the current proxy settings for the user.
.NOTES
Author Paolo Frigo, https://www.scriptinglibrary.com
#>
function Get-Proxy (){
Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' | Select-Object ProxyServer, ProxyEnable
}
function Set-Proxy {
[CmdletBinding()]
[Alias('proxy')]
[OutputType([string])]
Param
(
# server address
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true,
Position = 0)]
$server,
# port number
[Parameter(Mandatory = $true,
ValueFromPipelineByPropertyName = $true,
Position = 1)]
$port
)
#Test if the TCP Port on the server is open before applying the settings
If ((Test-NetConnection -ComputerName $server -Port $port).TcpTestSucceeded) {
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' -name ProxyServer -Value "$($server):$($port)"
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' -name ProxyEnable -Value 1
Get-Proxy #Show the configuration
}
Else {
Write-Error -Message "The proxy address is not valid: $($server):$($port)"
}
}
function Remove-Proxy (){
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' -name ProxyServer -Value ""
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' -name ProxyEnable -Value 0
}