Перейти до вмісту
Guides 2 хв читання 733 переглядів

Використання проксі у PowerShell

Робота з проксі у PowerShell: Invoke-WebRequest, System.Net.WebProxy, конфігурація системного проксі та автоматизація за допомогою скриптів.

Використання проксі у PowerShell

Використання проксі в PowerShell

Проксі в PowerShell

PowerShell – це потужний інструмент автоматизації в Windows. Робота з проксі є критично важливою для скриптів, що працюють у корпоративних мережах або потребують анонімності.

Invoke-WebRequest з проксі

Базовий запит через проксі

$proxy = "http://proxy_ip:8080"
$response = Invoke-WebRequest -Uri "https://httpbin.org/ip" -Proxy $proxy
$response.Content

З автентифікацією

$proxy = "http://proxy_ip:8080"
$proxyCred = New-Object System.Management.Automation.PSCredential(
    "username",
    (ConvertTo-SecureString "password" -AsPlainText -Force)
)

$response = Invoke-WebRequest -Uri "https://httpbin.org/ip" `
    -Proxy $proxy `
    -ProxyCredential $proxyCred

$response.Content

Invoke-RestMethod (для JSON API)

$proxy = "http://proxy_ip:8080"
$result = Invoke-RestMethod -Uri "https://httpbin.org/ip" -Proxy $proxy
$result.origin  # your IP via proxy

System.Net.WebProxy

Програмна конфігурація

$webProxy = New-Object System.Net.WebProxy("http://proxy_ip:8080", $true)
$webProxy.Credentials = New-Object System.Net.NetworkCredential("user", "pass")

# Apply to WebClient
$client = New-Object System.Net.WebClient
$client.Proxy = $webProxy
$result = $client.DownloadString("https://httpbin.org/ip")
Write-Host $result

Обхід проксі для конкретних адрес

$webProxy = New-Object System.Net.WebProxy("http://proxy_ip:8080", $true)
$webProxy.BypassList = @("localhost", "*.local", "192.168.*")
$webProxy.BypassProxyOnLocal = $true

HttpClient (.NET)

Для розширених сценаріїв використовуйте .NET HttpClient:

$proxy = New-Object System.Net.WebProxy("http://proxy_ip:8080")
$proxy.Credentials = New-Object System.Net.NetworkCredential("user", "pass")

$handler = New-Object System.Net.Http.HttpClientHandler
$handler.Proxy = $proxy
$handler.UseProxy = $true

$client = New-Object System.Net.Http.HttpClient($handler)
$response = $client.GetStringAsync("https://httpbin.org/ip").Result
Write-Host $response

Системний проксі

Читання поточних налаштувань

# From Windows Registry
$regPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
$proxyEnabled = (Get-ItemProperty -Path $regPath).ProxyEnable
$proxyServer = (Get-ItemProperty -Path $regPath).ProxyServer
Write-Host "Proxy enabled: $proxyEnabled"
Write-Host "Proxy server: $proxyServer"

Встановлення системного проксі

$regPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

# Enable proxy
Set-ItemProperty -Path $regPath -Name ProxyEnable -Value 1
Set-ItemProperty -Path $regPath -Name ProxyServer -Value "proxy_ip:8080"

# Exceptions
Set-ItemProperty -Path $regPath -Name ProxyOverride -Value "localhost;*.local"

Write-Host "Proxy configured"

Вимкнення системного проксі

Set-ItemProperty -Path $regPath -Name ProxyEnable -Value 0
Write-Host "Proxy disabled"

Змінні середовища

Встановлення

$env:HTTP_PROXY = "http://proxy_ip:8080"
$env:HTTPS_PROXY = "http://proxy_ip:8080"
$env:NO_PROXY = "localhost,*.local"

Постійне встановлення

[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://proxy_ip:8080", "User")
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://proxy_ip:8080", "User")

Перевірка

Write-Host "HTTP_PROXY: $env:HTTP_PROXY"
Write-Host "HTTPS_PROXY: $env:HTTPS_PROXY"

Ротація проксі в скриптах

$proxies = @(
    "http://user:pass@proxy1:8080",
    "http://user:pass@proxy2:8080",
    "http://user:pass@proxy3:8080"
)

$urls = @(
    "https://httpbin.org/ip",
    "https://httpbin.org/headers",
    "https://httpbin.org/user-agent"
)

foreach ($url in $urls) {
    $proxy = $proxies | Get-Random
    try {
        $response = Invoke-RestMethod -Uri $url -Proxy $proxy -TimeoutSec 10
        Write-Host "OK: $url via $proxy"
        Write-Host $response
    } catch {
        Write-Host "FAIL: $url via $proxy - $($_.Exception.Message)"
    }
}

Тестування проксі

function Test-Proxy {
    param(
        [string]$ProxyServer,
        [string]$ProxyPort,
        [string]$Username,
        [string]$Password
    )

    $proxy = "http://${ProxyServer}:${ProxyPort}"
    $cred = $null

    if ($Username) {
        $cred = New-Object System.Management.Automation.PSCredential(
            $Username,
            (ConvertTo-SecureString $Password -AsPlainText -Force)
        )
    }

    try {
        $params = @{
            Uri = "https://httpbin.org/ip"
            Proxy = $proxy
            TimeoutSec = 10
        }
        if ($cred) { $params.ProxyCredential = $cred }

        $response = Invoke-RestMethod @params
        Write-Host "OK - IP: $($response.origin)" -ForegroundColor Green
        return $true
    } catch {
        Write-Host "FAIL - $($_.Exception.Message)" -ForegroundColor Red
        return $false
    }
}

# Usage
Test-Proxy -ProxyServer "proxy_ip" -ProxyPort "8080" -Username "user" -Password "pass"

Масове тестування проксі

$proxyList = Get-Content "proxies.txt"  # format: ip:port:user:pass

$results = foreach ($line in $proxyList) {
    $parts = $line.Split(":")
    $ip = $parts[0]; $port = $parts[1]
    $user = $parts[2]; $pass = $parts[3]

    $proxy = "http://${ip}:${port}"
    try {
        $cred = New-Object PSCredential($user, (ConvertTo-SecureString $pass -AsPlainText -Force))
        $resp = Invoke-RestMethod "https://httpbin.org/ip" -Proxy $proxy -ProxyCredential $cred -TimeoutSec 5
        [PSCustomObject]@{Proxy=$line; Status="OK"; IP=$resp.origin}
    } catch {
        [PSCustomObject]@{Proxy=$line; Status="FAIL"; IP="N/A"}
    }
}

$results | Format-Table -AutoSize
$results | Export-Csv "proxy_check_results.csv" -NoTypeInformation

Висновок

PowerShell надає гнучкі інструменти для роботи з проксі: від простих командлетів (Invoke-WebRequest) до повного API .NET. Можливість керувати системними проксі через реєстр та змінні середовища робить PowerShell ідеальним для автоматизації конфігурації проксі на машинах Windows.

Оновлено: 06.03.2026
Назад до категорії

Читайте також

Guides 2 хв

Проксі для Nike SNKRS: купуйте лімітовані релізи та створюйте безліч акаунтів

Використовуйте residential або mobile проксі для Nike SNKRS, щоб брати участь у розіграшах з кількох акаунтів, обходити IP-ліміти та купувати лімітовані дропи без банів. Який тип обрати та як налаштувати GProxy.

Guides 2 хв

Як налаштувати проксі на iPhone (Wi-Fi та SOCKS5)

Налаштуйте проксі на iPhone через стандартні параметри Wi-Fi (HTTP/HTTPS) або додаток для проксі, як-от Shadowrocket, для SOCKS5 та стільникового зв'язку. Покрокове налаштування iOS та обмеження, про які варто знати.

Guides 3 хв

Проксі для Tinder: мультиакаунтинг та уникнення банів

Використовуйте мобільні або резидентські проксі для Tinder, щоб керувати кількома профілями та уникати IP shadowbans. Чому мобільні виграють, як усе налаштувати та чому сам по собі проксі не змінить ваше місто.

Guides 2 хв

Проксі для StockX: моніторинг цін та керування акаунтами

Використовуйте residential, ISP або mobile проксі для StockX, щоб моніторити ціни, керувати кількома акаунтами та купувати дропи без банів. Ось який тип обрати та як налаштувати GProxy.

Guides 3 хв

Проксі для OpenAI API: доступ, ліміти (Rate Limits) та налаштування

Маршрутизуйте OpenAI API через residential або ISP проксі, щоб отримати доступ до підтримуваних регіонів, уникнути 429 rate limits та ізолювати акаунти. Який проксі використовувати плюс приклади налаштування Python.

Guides 1 хв

Налаштування проксі в Cypress для E2E тестування

Налаштування проксі в Cypress: змінні HTTP_PROXY, cy-proxy-middleware та тестування геозалежного контенту.

Спробуйте наші проксі

20,000+ проксі в 100+ країнах світу

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.