#powershell #api #rest #proxy
#powershell #API #rest #прокси
Вопрос:
Я пытаюсь использовать «Invoke-RestMethod» в Powershell 4.0.
У пользователя, выполняющего скрипт, нет разрешения на аутентификацию на прокси-сервере, поэтому я хочу вручную установить другие учетные данные и не могу использовать «DefaultNetworkCredentials».
Однако, похоже, что Powershell игнорирует все настройки, которые я делаю. Я всегда получаю 407 в качестве ответа.
Удаленный сервер вернул сообщение об ошибке: (407) Требуется проверка подлинности прокси-сервера.
Прокси-сервер поддерживает Kerberos, NTLM и базовую аутентификацию. Я пробовал разные форматы для имени пользователя, но безуспешно. Настройка прокси-сервера работает в других приложениях с той же конфигурацией.
Любая помощь приветствуется.
$proxy = "http://proxyaddress.domain:8080"
$pass = ConvertTo-SecureString "<password>" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList "user@domain", $pass
Invoke-RestMethod -Uri 'https://.../' -Headers @{"Cache-Control"="no-cache"} -Proxy $proxy -ProxyCredential $cred
(На сервере нет прокси-сервера, и он должен быть настроен только для указанного скрипта.)
РЕДАКТИРОВАТЬ: документация Microsoft кажется очень запутанной. Переключатель -Proxy отображается как функция при просмотре документа для версии 4.0. Однако, просматривая документацию Powershell 7.0, в ней указано, что «Эта функция была добавлена в PowerShell 6.0.0».
Так что это определенно не будет работать таким образом. Вместо этого я попытался использовать прокси System.Net.WebClient, но также безуспешно. Исходный код отлично работает в Powershell 6.0.
Комментарии:
1. Установите его для запуска как запланированную вручную задачу с необходимыми вам учетными данными, предоставьте пользователю простой скрипт для запуска этой задачи.
2. У пользователя прокси-сервера практически нет других разрешений, кроме разрешений прокси-сервера, поэтому ему не разрешено запускать задачи или другие операции в самом скрипте. Я только что обновил сообщение, поскольку, похоже, в документации для PS 4.0 есть ошибка