OK, so I’m at my new job and for the first time in years, I have to deal with proxy servers again…
Since I’m used to having full admin rights on my machine and unrestricted internet, this was somewhat of a shock, while perfect for my productivity as well 😛
Unfortunately for them, I have since been informed that a special IT proxy is available, which provides this access, hence me being able to update my site again 🙂
Here’s a quick script which allows me to switch from “normal” proxy (while pre-defined you can set it to whatever you prefer) to IT proxy or disable it all together
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
[CmdletBinding(DefaultParameterSetName='SetProxy')]
Param (
[Parameter(ParameterSetName='SetProxy')]
$ProxyServer = '192.168.0.250:8080' ,
[Parameter(ParameterSetName='SetProxy')]
[switch]$IT,
[Parameter(ParameterSetName='DisableProxy')]
[switch]$Disable
)
begin {
Write-Verbose "Running command $($MyInvocation.MyCommand)"
Write-Verbose "Server proxy set to '$ProxyServer'"
Write-Verbose "IT is set to '$IT'"
Write-Verbose "Disable is set to '$Disable'"
$regKey="HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
if ($IT) {
$ProxyServer = '192.168.0.251:8080'
}
}
process {
Write-Verbose 'Checking current Proxy settings'
$CurrentProxyServer = (Get-ItemProperty -path $regKey ProxyServer -ErrorAction SilentlyContinue).ProxyServer
Write-Verbose "Current proxy is set to '$CurrentProxyServer'"
if ($Disable){
if([string]::IsNullOrEmpty($CurrentProxyServer)){
Write-Output "Proxy is already disabled"
return
} else {
Set-ItemProperty -path $regKey ProxyEnable -value 0
Remove-ItemProperty -path $regKey -name ProxyServer
Write-Output "Proxy is now disabled"
return
}
}
if([string]::IsNullOrEmpty($CurrentProxyServer)){
Write-Output "Proxy is currently disabled"
Set-ItemProperty -path $regKey ProxyEnable -value 1
Set-ItemProperty -path $regKey ProxyServer -value $ProxyServer
Write-Output "Proxy is now enabled and set to '$ProxyServer'"
} else {
if ($CurrentProxyServer -eq $ProxyServer) {
Write-Output "Current proxy set to $ProxyServer"
return
} else {
Write-Output "Proxy is currently set to '$CurrentProxyServer'"
Write-Output "Setting proxy to '$ProxyServer' instead"
Set-ItemProperty -path $regKey ProxyEnable -value 1
Set-ItemProperty -path $regKey ProxyServer -value $ProxyServer
Write-Output "Proxy is enabled and set to '$ProxyServer'"
}
}
}
|
Happy Scripting! 🙂