我尝试使用packer.io和powershell脚本安装chocolatey。
我有两个脚本,一个用于代理配置,另一个用于巧克力安装。 第一个代理脚本:
$ErrorActionPreference = "Stop"
# set global proxy
$reg = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
Set-ItemProperty -Path $reg -Name ProxyServer -Value "http://mycompoany.proxy:1234"
Set-ItemProperty -Path $reg -Name ProxyEnable -Value 1
安装chocolatey的第二个脚本:
$ErrorActionPreference = "Stop"
$reg = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
$settings = Get-ItemProperty -Path $reg
$settings.ProxyServer
$settings.ProxyEnable
iex ((new-object net.webclient).DownloadString('http://chocolatey.org/install.ps1'))
我在packer和第一个脚本传递中使用powershell运行此脚本,第二个脚本没有。我收到错误消息:
^[[0;32m windows-2012-R2-standard: Exception calling "DownloadString" with "1" argument(s): "Unable to connect to^[[0m
^[[0;32m windows-2012-R2-standard: the remote server"^[[0m
^[[0;32m windows-2012-R2-standard: At C:\Windows\Temp\script.ps1:19 char:1^[[0m
^[[0;32m windows-2012-R2-standard: + iex ($wc.DownloadString('https://chocolatey.org/install.ps1'))^[[0m
^[[0;32m windows-2012-R2-standard: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^[[0m
^[[0;32m windows-2012-R2-standard: + CategoryInfo : NotSpecified: (:) [], ParentContainsErrorRecordE^[[0m
^[[0;32m windows-2012-R2-standard: xception^[[0m
^[[0;32m windows-2012-R2-standard: + FullyQualifiedErrorId : WebException^[[0m
^[[0;32m windows-2012-R2-standard:^[[0m
^[[1;32m==> windows-2012-R2-standard: Deleting output directory...^[[0m
当然$ settings.ProxyServer返回正确的代理地址并启用代理。 当我只运行第一个脚本和由packer创建的启动机器时,我可以手动安装chocolatey而无需任何修改,并使用IE浏览互联网。如果我没有运行第一个脚本(设置procxy),我不会因为代理而安装任何东西。我也无法打开任何网页。结果我假设我的代理脚本有效。
我没有使用用户并通过我的代理。
我的Windows系统是Windows 2012服务器R2。 Packer版本0.10.1
我尝试在webclient powershell对象中直接设置代理,但这也不起作用。
有什么想法吗?
答案 0 :(得分:0)
你可以用它。为我工作。 https://github.com/chocolatey/choco/wiki/Proxy-Settings-for-Chocolatey
显式代理设置
Chocolatey具有明确的代理支持,从0.9.9.9开始。
您可以简单地配置1或3个设置,而Chocolatey将使用代理服务器。代理是必需的,是代理服务器的位置和端口。 proxyUser和proxyPassword是可选的。用户/密码的值仅在两者都存在时用于凭证。
choco config set proxy <locationandport>
choco config set proxyUser <username>
choco config set proxyPassword <passwordThatGetsEncryptedInFile>
示例强>
在0.9.9.9中运行以下命令:
choco config set proxy http://localhost:8888
choco config set proxyUser bob
choco config set proxyPassword 123Sup#rSecur3
答案 1 :(得分:0)
不幸的是,我无法在Power Shell中设置代理。如果没有重新启动,则无法正常运行IE [sic!]。
我在Autounattend.xml文件中设置了代理,此解决方案正常运行。
答案 2 :(得分:-1)
两个在Windows上安装Chocolatey的命令
先决条件:在管理员模式下启动cmd
1)扩展cmd:@“%SystemRoot%\ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe” -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command“ iex((New-Object System.Net.WebClient) .DownloadString('https://chocolatey.org/install.ps1'))“ &&设置” PATH =%PATH%;%ALLUSERSPROFILE%\ chocolatey \ bin“
2)运行cmd:choco安装Chocolateygui