如何在Windows 2012 R2 Core上的代理后面安装Chocolatey软件包?

时间:2015-06-17 16:25:07

标签: .net powershell proxy windows-server-2012-r2 chocolatey

我目前正在将Chocolatey与Ansible结合使用,将大量应用程序部署到混合的Windows / Linux环境中。

所有Windows计算机,一个正在作为服务器核心安装运行,并且对于除安装了GUI的计算机之外的所有计算机,Chocolatey将不会安装任何应用程序,因为它无法使用代理。

我使用netsh设置了代理环境变量:

PS C:\Windows\system32> netsh winhttp show proxy

Current WinHTTP proxy settings:

Proxy Server(s) :  http://aaa.bbb.ccc.ddd:3128
Bypass List     :  <local>;localhost;127.0.0.1;172.16.*;192.168.*;*.domain.local;

同样在%APPDATA%\NuGet\NuGet.Config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="HTTP_PROXY" value="http://aaa.bbb.ccc.ddd:3128" />
  </config>
</configuration>

但是,当Powershell脚本脚本调用$ webclient = new-object System.Net.WebClient时,此对象的proxy元素不返回任何内容:

PS C:\Windows\system32> $webclient = new-object System.Net.WebClient
PS C:\Windows\system32> $webclient.Proxy

Credentials
-----------

我发现如果我手动强制函数/ Get-Headers.ps1和函数/ Get-webFiles.ps1中的代码使用代理然后安装工作,但这不是解决问题的一个很好的解决方法我的Ansible任务现在已修复为特定版本的chocolatey,我知道该解决方法有效。

有没有人可以尝试其他任何想法/解决方案?

3 个答案:

答案 0 :(得分:1)

Choco系列0.9.9+是完全重写的,并没有实现所有的东西,包括你在IE中设置的代理支持。

观看问题https://github.com/chocolatey/choco/issues/243,了解它何时可用。

更新:代理支持现在在Chocolatey中 - 请参阅https://github.com/chocolatey/choco/wiki/Proxy-Settings-for-Chocolatey

答案 1 :(得分:1)

先运行

choco config set proxy http://proxy_host:proxy_port

答案 2 :(得分:0)

我在2018年11月尝试了此操作

因此,安装和运行Chocolatey需要三个步骤:

  1. 您需要从以下位置手动下载安装文件:

    https://chocolatey.org/install.ps1

  2. 您需要执行以下任一操作: 一种。编辑ps1文件或
    b。您的环境变量。

您需要具有以下变量:

    $env:chocolateyProxyLocation = "http://USER:PASSWORD@http://USER:PASSWORD@IP_ADDRESS:PORT
    $env:chocolateyProxyUser = "USER"
    $env:chocolateyProxyPassword  =  "PASSWORD"

   THEY MUST BE AS THEY ARE ABOVE with USER:PASSWORD@PROXY_LOCATION:PORT format.
  1. 您必须调用install.ps1文件。 您可以从Windows-PowerShell ISE或从命令行调用它

您必须调用本地脚本!!!不是在线的,例如:

file:///E:/softwares/chocolate_install_script/install.ps1

致电以下内容:

C:\ WINDOWS \ system32> @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('file:///E:/softwares/chocolate_install_script/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

  1. 如果您通过管理程序运行此程序,一切都会正常工作

之后,您需要执行以下操作:

choco config set proxy http://USER:PASSWORD@IP_ADDRESS:PORT
choco config set proxyUser bob
choco config set proxyPassword 123Sup#rSecur3