Категории: ОСи

Использование choco через прокси

Choco — лучший пакетный менеджер для Windows. Чтобы использовать его в корпоративной среде за прокси, необходимо выполнить его донастройку.

Вариантов прокидывания прокси в choco много:

  • через переменные окружения
  • через системную настройку прокси
  • через конфигурацию менеджера
  • через командную строку

Самый простой способ — использовать системный прокси, который прописан в конфигурации Internet Options браузера IE. Такой вариант не всем подходит, потому что чаще всего в корпоративном окружении используется pac файл для автоматической настройки прокси.

Я предпочитаю использовать переменные окружения. К счастью, choco распознает, если в окружении имеются стандартные переменные (в нижнем регистре!):

  • http_proxy
  • https_proxy
  • no_proxy

Если же вам не хочется, чтобы эти переменные влияли на все другие консольные приложения, то можно выполнить конфигурацию самого 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 за прокси

Установка choco, находясь за корпоративным прокси, ничем особо не отличается от установки других приложений через Powershell c использованием proxy.

Необходимо использовать системную .NET библиотеку и вызов для работы с аутентификацией.

  1. Скачайте файл установки локально https://community.chocolatey.org/install.ps1
  2. Запустите PS от имени администратора
  3. Объявите переменные
  4. Запустите скрипт в той же PS сессии

Во-первых, задайте использование библиотеки для аутентификации на прокси. Если прокси не требует аутентификации или на нем работает доменная аутентификация, то в 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"
[Посещений: 115, из них сегодня: 1]
Share
Опубликовал
Александр Дудкин

Свежие посты

Изучаем новую встроенную графику AMD поколения Zen 5

Введение архитектуры Zen 5 — это лишь часть истории. Настоящая революция от AMD заключена в мобильных процессорах…

7 сентября 2025

Как установить антивирус ESET на Windows 7 и 8.1

Компания ESET в 2023 году перестала поддерживать Windows 7 и прочие устаревшие операционные системы в…

7 сентября 2025

Рассматриваем архитектуру процессоров AMD Zen 5

Zen 5 - новейшая и самая прогрессивная архитектура процессоров от AMD, представленная в 2024 году.…

6 сентября 2025

Известные проблемы и уязвимости процессоров Intel и AMD

Последние годы все чаще обнаруживаются проблемы с различными новыми семействами процессоров, как Intel, так и…

31 августа 2025

Расширение Wi-Fi сети на примере Mikrotik

Существует несколько способов расширить зону покрытия Wi-Fi сетей: использовать усилители Wi-Fi сигнала (репитеры), настроить WDS…

22 июля 2025

Замена аккумуляторов в ноутбуках

Заменять аккумулятор в ноутбуках необходимо, когда он перестает удерживать заряд достаточное время или же когда…

16 июля 2025