Обнаружение ошибки «(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.