首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用TFS build安装Chocolatey

使用TFS build安装Chocolatey
EN

Stack Overflow用户
提问于 2017-12-20 19:43:07
回答 2查看 247关注 0票数 1

我想静默地在一系列测试代理上安装chocolatey,我正在尝试使用TFS构建来做到这一点。我有一个使用“在远程机器上运行Powershell”任务的构建步骤。这反过来从https://chocolatey.org/install.ps1调用ps1来安装chocolatey,我提供了在chocolatey网站上记录的powershell开关:

代码语言:javascript
复制
-NoProfile -InputFormat None -ExecutionPolicy Bypass

当我运行构建时,我收到以下错误:

System.Management.Automation.RuntimeException:提示用户失败的命令,因为主机程序或命令类型不支持用户交互。尝试支持用户交互的主机程序,例如workflows控制台或workflows ISE,并从不支持用户交互的命令类型中删除与提示符相关的命令。-> System.Management.Automation.RuntimeException:提示用户失败的命令,原因是主机程序或命令类型不支持用户交互。尝试支持用户交互的主机程序,例如workflows控制台或workflows ISE,并从不支持用户交互的命令类型中删除与提示符相关的命令。

我做错了什么?巧克力安装程序需要用户交互,这看起来很奇怪,我认为巧克力的全部意义在于静默安装?

EN

回答 2

Stack Overflow用户

发布于 2017-12-21 14:18:14

似乎你在任务"PowerShell on Target Machines“中有错误的设置。请按照以下步骤操作:

  1. 在目标计算机上创建.ps1文件并指定以下文本:

新设置-执行策略绕过新进程;

(( -Scope -Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

  1. 在"PowerShell on Target Machines“任务中,只需指定.ps1文件的位置即可。

查看下面的截图:

票数 1
EN

Stack Overflow用户

发布于 2018-01-02 05:36:11

我做错了什么?巧克力安装程序需要用户交互,这看起来很奇怪,我认为巧克力的全部意义在于静默安装?

通常,它会完全静默,除非有需要输入的东西(比如代理)。最好通过直接在计算机上运行安装程序并查看发生的情况来确定可能导致问题的原因。

详细信息

install.ps1 passes over to chocolateyInstall.ps1,它调用chocolateySetup.psm1

在查看该脚本时,您可能会注意到install.ps1使用Write-Output,但psm1在某些地方使用Write-Host。这可能会也可能不会导致问题,但考虑到该脚本在PowerShell DSC上运行良好,这是不太可能的。

因此,这可能是几件事:

  • 确保运行该脚本的任何设备都具有管理员权限,否则您将收到拒绝访问错误(除非您指定了不同的Chocolatey installation location).
  • Make确保您不会因为需要输入代理凭据而受到攻击(下面的脱机建议修复了此问题)。
  • 确保您不会因为无法访问internet资源而受到攻击(这也可以通过使用Offline
  • 修复)可能是其他导致弹出的问题,如需要安装.NET 4.x。在安装巧克力之前,建议您安装4.x系列中的最新.NET框架。

离线推荐

我们能给出的最好的建议--不要在这个脚本的任何部分使用互联网。如果你想要可靠性,你应该把所有的东西都放在内部。这包括将用于巧克力的install.ps1脚本和chocolatey.nupkg本身。

https://chocolatey.org/install#completely-offline-install上阅读以了解我们的建议。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47905272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档