Преодоление ошибки «(407) Требуется проверка подлинности прокси» в PowerShell: подробное руководство

Обнаружение ошибки «(407) Требуется проверка подлинности прокси» в PowerShell может расстроить, особенно когда вы пытаетесь автоматизировать задачи или получить доступ к ресурсам за прокси-сервером. К счастью, есть несколько методов, которые вы можете использовать, чтобы решить эту проблему и без проблем продолжить работу со сценариями PowerShell. В этой статье мы рассмотрим различные подходы к устранению этой ошибки, предоставив вам практические примеры кода и понятные объяснения.

Метод 1: передача учетных данных прокси-сервера
Один из самых простых способов устранить ошибку «(407) Требуется проверка подлинности прокси-сервера» — предоставить необходимые учетные данные прокси-сервера. Этого можно добиться, используя командлет Get-Credential, чтобы запросить у пользователя имя пользователя и пароль, а затем передать эти учетные данные прокси-серверу с помощью параметра Proxy. Вот пример:

$proxyCreds = Get-Credential
Invoke-WebRequest -Uri "https://example.com" -Proxy "http://proxyserver:port" -ProxyCredential $proxyCreds

Метод 2: установка учетных данных прокси-сервера в сеансе.
Другой подход заключается в установке учетных данных прокси-сервера в сеансе с помощью командлета Set-Item. Этот метод позволяет вам не предоставлять учетные данные каждый раз, когда вы делаете запрос. Вот фрагмент кода, иллюстрирующий это:

$proxyCreds = Get-Credential
$proxyUri = "http://proxyserver:port"
$proxy = New-Object System.Net.WebProxy($proxyUri,$true)
$proxy.Credentials = $proxyCreds.GetNetworkCredential()
[System.Net.WebRequest]::DefaultWebProxy = $proxy

Метод 3: использование сетевых учетных данных по умолчанию.
Если вы запускаете PowerShell с учетной записью пользователя, для которой настроена проверка подлинности прокси-сервера, вы можете использовать сетевые учетные данные по умолчанию. Такой подход устраняет необходимость явного предоставления учетных данных. Вот пример:

Invoke-WebRequest -Uri "https://example.com" -Proxy "http://proxyserver:port" -ProxyCredential [System.Net.CredentialCache]::DefaultNetworkCredentials

Метод 4: обход прокси-сервера для локальных адресов
В некоторых сценариях вам может потребоваться обойти прокси-сервер для локальных адресов. Этого можно добиться, добавив в список обхода прокси локальные адреса. Вот фрагмент кода, демонстрирующий это:

$proxyBypass = "<local>"
$proxyUri = "http://proxyserver:port"
$proxy = New-Object System.Net.WebProxy($proxyUri,$true)
$proxy.ProxyBypassList.Add($proxyBypass)
[System.Net.WebRequest]::DefaultWebProxy = $proxy

Метод 5: изменение настроек прокси-сервера Internet Explorer
PowerShell по умолчанию использует настройки прокси-сервера Internet Explorer. Вы можете изменить эти параметры, включив необходимые учетные данные. Вот пример того, как это сделать:

$proxyUri = "http://proxyserver:port"
$proxyCreds = Get-Credential
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyServer -Value $proxyUri
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyEnable -Value 1
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyCredential -Value $proxyCreds.Password

Обнаружение ошибки «(407) Требуется проверка подлинности прокси» в PowerShell не должно быть препятствием. Используя методы, обсуждаемые в этой статье, такие как передача учетных данных прокси-сервера, установка учетных данных прокси-сервера в сеансе, использование сетевых учетных данных по умолчанию, обход прокси-сервера для локальных адресов или изменение настроек прокси-сервера Internet Explorer, вы можете эффективно преодолеть эту ошибку и продолжить работу. ваши задачи автоматизации PowerShell без проблем.

Внедрив эти решения, вы будете хорошо подготовлены к устранению ошибок аутентификации прокси-сервера и обеспечите бесперебойное выполнение ваших сценариев PowerShell.