Начиная с PowerShell 3.0 PSDefaultParameterValues может задавать прокси-значения по умолчанию для повторяющихся веб-вызовов:

$PSDefaultParameterValues['Invoke-WebRequest:Proxy'] = 'http://proxy.example:8080'
$PSDefaultParameterValues['Invoke-RestMethod:Proxy'] = 'http://proxy.example:8080'

Эти присваивания сохраняют посторонние значения по умолчанию в словаре. Явный параметр Proxy переопределяет соответствующее значение по умолчанию. Держите ключи привязанными к конкретной команде, а не сопоставляйте все одноимённые параметры с помощью wildcard. Для отдельного сеанса публичного сайта, где разрешены публичные посредники, выбирайте кандидата из списка HTTP-прокси только если не заданы значения по умолчанию ProxyCredential или ProxyUseDefaultCredentials и нет явных учётных данных прокси.

Если прокси использует текущее удостоверение Windows, добавьте соответствующие значения по умолчанию:

$PSDefaultParameterValues['Invoke-WebRequest:ProxyUseDefaultCredentials'] = $true
$PSDefaultParameterValues['Invoke-RestMethod:ProxyUseDefaultCredentials'] = $true

Поместите выбранные записи в подходящий profile, если будущие интерактивные сеансы должны их получать. Для другой сети замените их значения или удалите записи, принадлежащие этой настройке:

$PSDefaultParameterValues.Remove('Invoke-WebRequest:Proxy')
$PSDefaultParameterValues.Remove('Invoke-RestMethod:Proxy')
$PSDefaultParameterValues.Remove('Invoke-WebRequest:ProxyUseDefaultCredentials')
$PSDefaultParameterValues.Remove('Invoke-RestMethod:ProxyUseDefaultCredentials')

Удаление восстанавливает обычный выбор параметров. Cmdlet по-прежнему может использовать поддерживаемую им конфигурацию системы или среды; удаление значения по умолчанию явно не требует прямого подключения.

Похожие статьи