# ========================================================= # MAX 网络工具箱 - 系统代理管理 # 查看 / 设置 / 清除 Windows 系统代理 # ========================================================= $Common = "C:\Setup\windows\lib\common.ps1" if (Test-Path $Common) { . $Common } Show-AdminWarn Write-Header "系统代理管理" # ========================================================= do { try { Write-Section "操作菜单" Write-Info "1. 查看当前代理设置" Write-Info "2. 设置系统代理" Write-Info "3. 清除系统代理" Write-Info "4. 重置 WinHTTP 代理" Write-Info "0. 退出" Write-Host "" $Choice = Read-Host " 请选择" Write-Line switch ($Choice) { "1" { Write-Section "查看代理设置" Write-Info "用户代理:" try { Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | Select-Object ProxyEnable, ProxyServer, ProxyOverride | Format-List } catch { Write-Err "读取用户代理设置失败" } Write-Host "" Write-Info "WinHTTP 代理:" try { netsh winhttp show proxy } catch { Write-Err "读取 WinHTTP 代理失败" } Write-OK "代理信息查看完成" } "2" { Write-Section "设置系统代理" $ProxyServer = Read-Host " 请输入代理服务器地址,例如 127.0.0.1:7890" if ([string]::IsNullOrWhiteSpace($ProxyServer)) { Write-Err "代理服务器地址不能为空" } else { try { Write-Info "设置用户代理..." Set-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ` -Name ProxyEnable -Type DWord -Value 1 Set-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ` -Name ProxyServer -Type String -Value $ProxyServer Write-Info "设置 WinHTTP 代理..." netsh winhttp set proxy $ProxyServer Write-OK "系统代理已设置为 $ProxyServer" } catch { Write-Err "设置代理失败" Write-Muted $_.Exception.Message } } } "3" { Write-Section "清除系统代理" try { Write-Info "禁用用户代理..." Set-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ` -Name ProxyEnable -Type DWord -Value 0 Remove-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ` -Name ProxyServer -ErrorAction SilentlyContinue Write-Info "重置 WinHTTP 代理..." netsh winhttp reset proxy Write-OK "系统代理已清除" } catch { Write-Err "清除代理失败" Write-Muted $_.Exception.Message } } "4" { Write-Section "重置 WinHTTP 代理" try { netsh winhttp reset proxy Write-OK "WinHTTP 代理已重置" } catch { Write-Err "重置 WinHTTP 代理失败" Write-Muted $_.Exception.Message } } "0" { Write-OK "已退出" break } default { Write-Warn "无效选项,请重新选择" } } if ($Choice -ne "0") { Pause-Max } } catch { Write-Err "操作过程中出现错误" Write-Muted $_.Exception.Message Pause-Max } } while ($Choice -ne "0")