Powershell Profile配置
Powershell Profile配置
找到配置文件路径
1.命令行代理
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
| Function SetProxy() { Param( $Addr = $null, [switch]$ApplyToSystem ) $env:HTTP_PROXY = $Addr; $env:HTTPS_PROXY = $Addr; $env:http_proxy = $Addr; $env:https_proxy = $Addr;
if ($addr -eq $null) { [Net.WebRequest]::DefaultWebProxy = New-Object Net.WebProxy; if ($ApplyToSystem) { SetSystemProxy $null; } Write-Output "Successful unset all proxy variable"; } else { [Net.WebRequest]::DefaultWebProxy = New-Object Net.WebProxy $Addr; if ($ApplyToSystem) { $matchedResult = ValidHttpProxyFormat $Addr; if (-not ($matchedResult -eq $null)) { SetSystemProxy $matchedResult.1; } } Write-Output "Successful set proxy as $Addr"; } } Function SetSystemProxy($Addr = $null) { Write-Output $Addr $proxyReg = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings";
if ($Addr -eq $null) { Set-ItemProperty -Path $proxyReg -Name ProxyEnable -Value 0; return; } Set-ItemProperty -Path $proxyReg -Name ProxyServer -Value $Addr; Set-ItemProperty -Path $proxyReg -Name ProxyEnable -Value 1; } Function ValidHttpProxyFormat ($Addr) { $regex = "(?:https?:\/\/)(\w+(?:.\w+)*(?::\d+)?)"; $result = $Addr -match $regex; if ($result -eq $false) { throw [System.ArgumentException]"The input $Addr is not a valid HTTP proxy URI."; }
return $Matches; } Set-Alias set-proxy SetProxy
|
重新打开窗口
| 设置当前窗口代理 :`set-proxy 'http://your-proxy:port'` 设置当前窗口代理 + 系统代理:`set-proxy 'http://your-proxy:port' -ApplyToSystem` 取消当前窗口代理:`set-proxy` (没有参数) 取消当前窗口代理 + 系统代理:`set-proxy -ApplyToSystem`
|
2.刷新环境变量
| Function RefushEnv() { $env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User") }
Set-Alias refush-env RefushEnv
|