Choco — лучший пакетный менеджер для Windows. Чтобы использовать его в корпоративной среде за прокси, необходимо выполнить его донастройку.
Вариантов прокидывания прокси в choco много:
Самый простой способ — использовать системный прокси, который прописан в конфигурации Internet Options браузера IE. Такой вариант не всем подходит, потому что чаще всего в корпоративном окружении используется pac файл для автоматической настройки прокси.
Я предпочитаю использовать переменные окружения. К счастью, choco распознает, если в окружении имеются стандартные переменные (в нижнем регистре!):
Если же вам не хочется, чтобы эти переменные влияли на все другие консольные приложения, то можно выполнить конфигурацию самого choco:
choco config set --name="'proxy'" --value="'http://localhost:8888'"
choco config set --name="'proxyUser'" --value="'username'" # опционально
choco config set --name="'proxyPassword'" --value="'123Sup#rSecur3'" # опционально, хранится в зашифрованном виде
choco config set --name="'proxyBypassList'" --value="'http://localhost,http://this.location/'" # опционально
choco config set --name="'proxyBypassOnLocal'" --value="'true'" # опционально
Ну и наконц, можно разово указывать прокси в команднйо строке при запуске choco. Используйте ключи:
--proxy="'value'" --proxy-user="'<user>'" --proxy-password="'<pwd>'" --proxy-bypass-list="'<comma separated, list>'" --proxy-bypass-on-local
Установка choco, находясь за корпоративным прокси, ничем особо не отличается от установки других приложений через Powershell c использованием proxy.
Необходимо использовать системную .NET библиотеку и вызов для работы с аутентификацией.
Во-первых, задайте использование библиотеки для аутентификации на прокси. Если прокси не требует аутентификации или на нем работает доменная аутентификация, то в ps пропишите
[Net.WebRequest]::DefaultWebProxy.Credentials = [Net.CredentialCache]::DefaultCredentials
Если дополнительно требуются аутентификация на прокси (случай, когда вы получаете ошибку Get Response returned: (407) Proxy Authentication Required), то добавьте переменные с логином и паролем $env:chocolateyProxyUser
и $env:chocolateyProxyPassword
. Обратите внимание, что если вы в AD домене, то логин должен включать название домена: AD\UserName
.
И наконец, задайте адрес прокси через переменную $env:chocolateyProxyLocation
.
Все эти 3 переменные в скрипте установки используются в стандартных командах конфигурации прокси:
...
($env:chocolateyProxyUser -and $env:chocolateyProxyPassword) {
$securePass = ConvertTo-SecureString $env:chocolateyProxyPassword -AsPlainText -Force
$config['ProxyCredential'] = [System.Management.Automation.PSCredential]::new($env:chocolateyProxyUser, $securePass)
}
...
$ProxyUrl = $env:chocolateyProxyLocation
New-Object System.Net.WebProxy -ArgumentList $ProxyUrl, <# bypassOnLocal: #> $true
Итоговый скрипт установки должен получиться примерно такой:
[Net.WebRequest]::DefaultWebProxy.Credentials = [Net.CredentialCache]::DefaultCredentials
$env:chocolateyProxyLocation = 'https://local.proxy.address:8001'
# Un-comment the following lines if your proxy server requires explicit authentication and
# substitute your username and password.
#$env:chocolateyProxyUser = 'username'
#$env:chocolateyProxyPassword = 'password'
# Run the downloaded install script
& "C:\Path\to\script\install.ps1"
Процессы и программы Программа в Unix — это последовательность исполняемых инструкций на диске. Вы можете…
Существует большое разнообразие форматов, в которых создаются сертификаты и приватные ключи для них. Часто они…
Все известно, что Докерхаб закрыл доступ для пользователей из санкционных стран, включая РФ и РБ.…
Зачастую бывает необходимо проверить, а какой SSL сертификат отдает тот или иной хост на определенном…
В России становится все больше малоизвестных китайских товаров, поэтому сегодня у нас на обзоре китайский…
Команда mv не перемещает с перезаписью поверх папки, если таковые уже существуют, поэтому часто вместо…