2015-05-28 5 views
1

Я создал сценарий PowerShell, который спрашивает пользователя, хотят ли они установить Chocolatey, а затем устанавливает множество приложений и перемещает некоторые файлы.Как указать порт в сценарии установки пакета Chocolatey?

Я использую это в корпоративной сети, и, к сожалению, настройки прокси-сервера, которые мы используем, создают проблему. Когда я выполняю скрипт Chocolatey, он говорит, что есть ошибка, и он не может загрузить пакет. Самое неприятное - это описание ошибки: «Больше нет данных». Поэтому, пытаясь запустить сценарий, я запустил Wireshark в фоновом режиме и мне сказали, что скрипт пытается напрямую подключиться к ящику, где его не должно быть, и именно поэтому его отклоняют.

Мне сказали исправить это, мне нужно заставить скрипт выйти из порта 80. Который я не знаю, как это сделать, поэтому искал некоторые советы о том, как этого добиться.

Я хотел бы думать, что это было так же просто, как добавление :80 где-то, но я пробовал это и не повезло.

#-Setting HTTP/S Proxy's-# 

write-host "Configuring local proxy settings" 
cscript configs\SetProxy_underscore.vbs 

function Install-NeededFor { 
param(
    [string] $packageName = '' 
    ,[bool] $defaultAnswer = $true 
) 

    if ($packageName -eq '') { return $false } 

    $yes = '6' 
    $no = '7' 
    $msgBoxTimeout='-1' 
    $defaultAnswerDisplay = 'Yes' 
    $buttonType = 0x4; 
    if (!$defaultAnswer) { $defaultAnswerDisplay = 'No'; $buttonType= 0x104; } 

    $answer = $msgBoxTimeout 
    try { 
    $timeout = 10 
    $question = "Do you need to install $($packageName)? Defaults to `'$defaultAnswerDisplay`' after $timeout seconds" 
    $msgBox = New-Object -ComObject WScript.Shell 
    $answer = $msgBox.Popup($question, $timeout, "Install $packageName", $buttonType) 
    } catch { 
    } 

    if ($answer -eq $yes -or ($answer -eq $msgBoxTimeout -and $defaultAnswer -eq $true)) { 
    write-host "Installing $packageName" 
    return $true 
    } 

    write-host "Not installing $packageName" 
    return $false 
} 

#-install chocolatey-# 

if (Install-NeededFor 'chocolatey') { 
    iex ((new-object net.webclient).DownloadString('http://chocolatey.org/install.ps1')) 
} 

choco install dotnet4.5 -y 
cinst nuget.commandline -y 
cinst chefdk -y 
cinst notepadplusplus -y 
cinst vagrant -y 
cinst vagrant-winrm-config -y 
cinst virtualbox -version 4.3.12 -y 
choco install virtualbox -version 4.3.12 -y 
cinst atom -y 
cinst putty -y 
cinst winscp -y 
cinst conemu -y 
cinst launchy -y 
cinst everything -y 
choco install git.install -y -params '"/GitAndUnixToolsOnPath"' 
choco install git-credential-winstore -y 

vagrant plugin install vagrant-berkshelf 
vagrant plugin install vagrant-proxyconf 
vagrant plugin install vagrant-omnibus 
+1

PowerPoint <> PowerShell. Возможно, вы допустили ошибку в пометке этого? –

+0

Я действительно. Спасибо, что заметили это. Отредактировал его. –

+0

Непонятно, какая часть терпит неудачу ... установка Chocolatey сама? Или установить один (все? Любой?) Пакетов? Можете ли вы пояснить и, возможно, опубликовать фрагмент командной строки или ошибку? –

ответ

1

Сейчас серия 0.9.9, кажется, не очень хорошо с прокси - следовать https://github.com/chocolatey/choco/issues/243, чтобы узнать о том, когда и какой версии он закреплен в спасибо.!

Вы также можете придерживаться 0.9.8.33 до тех пор, пока исправления в - у нас даже есть способ для вас, чтобы установить старый клиент - https://github.com/chocolatey/chocolatey.org/issues/162

+0

Интересно, спасибо за ответ. Простой вопрос, но как узнать, какую шоколадную версию я использую? Я просмотрел каталог, но, похоже, не нашел его ... –

+1

'choco -v' должен получить вам версию как для старых, так и для новых клиентов – ferventcoder

+0

Awesome! Это сделало трюк, теперь способный загружать пакеты. Мне просто нужно изменить скрипт сейчас, чтобы установить эту конкретную версию, надеюсь, не должно быть слишком сложно. –

 Смежные вопросы

  • Нет связанных вопросов^_^