You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PowerShell修改全用户代理设置?解决SID访问限制难题

解决方案:批量修改所有用户代理或配置全局覆盖代理

一、无需用户登录,批量修改所有用户的专属代理设置

Windows系统中,所有本地用户的注册表配置都会加载到HKU(HKEY_USERS)根键下,即便用户未登录,只要账户已创建,对应SID项就会存在。你可以通过遍历HKU下的用户SID,直接修改每个用户的代理注册表项:

  1. 过滤有效用户SID:排除系统内置账户(如DEFAULT、S-1-5-18本地系统、S-1-5-19本地服务、S-1-5-20网络服务),仅处理普通用户的SID。
  2. 修改代理配置:针对每个用户SID,修改HKU\<SID>\Software\Microsoft\Windows\CurrentVersion\Internet Settings下的代理相关键值。

PowerShell脚本示例(需管理员权限运行)

# 定义代理设置参数
$proxyServer = "http://your-proxy:8080"
$proxyEnable = 1

# 获取HKU根键下的所有普通用户SID项
$userSIDs = Get-ChildItem -Path "Registry::HKEY_USERS" | Where-Object {
    $_.Name -match "^HKEY_USERS\\S-1-5-21-" -and
    $_.Name -notmatch "(S-1-5-18|S-1-5-19|S-1-5-20)$"
}

# 遍历每个用户SID,更新代理设置
foreach ($sid in $userSIDs) {
    $regPath = "$($sid.Name)\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
    try {
        Set-ItemProperty -Path "Registry::$regPath" -Name "ProxyServer" -Value $proxyServer -ErrorAction Stop
        Set-ItemProperty -Path "Registry::$regPath" -Name "ProxyEnable" -Value $proxyEnable -Type DWord -ErrorAction Stop
        Write-Host "已成功修改SID $($sid.PSChildName) 的代理设置"
    }
    catch {
        Write-Warning "修改SID $($sid.PSChildName) 时出错:$_"
    }
}

二、配置全局代理覆盖用户专属设置

如果希望直接用全局代理覆盖所有用户的自定义设置,无需逐个修改用户SID,可以通过修改HKLM(HKEY_LOCAL_MACHINE)下的系统级配置,强制优先使用全局代理:

  1. 设置全局代理参数:在HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings下配置ProxyServer和ProxyEnable。
  2. 启用全局覆盖:将ProxySettingsPerUser键值设为0(DWORD类型),系统会忽略用户层面的代理设置,强制使用全局配置。

PowerShell脚本示例(需管理员权限运行)

# 定义全局代理设置参数
$proxyServer = "http://your-proxy:8080"
$proxyEnable = 1

$globalRegPath = "Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

try {
    Set-ItemProperty -Path $globalRegPath -Name "ProxyServer" -Value $proxyServer -ErrorAction Stop
    Set-ItemProperty -Path $globalRegPath -Name "ProxyEnable" -Value $proxyEnable -Type DWord -ErrorAction Stop
    Set-ItemProperty -Path $globalRegPath -Name "ProxySettingsPerUser" -Value 0 -Type DWord -ErrorAction Stop
    Write-Host "已成功配置全局代理并启用覆盖用户设置"
}
catch {
    Write-Warning "配置全局代理时出错:$_"
}

注意事项

  • 两种方案都需要以管理员权限运行PowerShell,否则无法访问/修改HKU下的其他用户项或HKLM的系统级注册表项。
  • 全局覆盖方案生效后,用户无法自行修改代理设置(除非管理员将ProxySettingsPerUser改回1),需根据客户需求选择。

内容的提问来源于stack exchange,提问作者HappyFlyZ13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 04:46:13