我想静默地在一系列测试代理上安装chocolatey,我正在尝试使用TFS构建来做到这一点。我有一个使用“在远程机器上运行Powershell”任务的构建步骤。这反过来从https://chocolatey.org/install.ps1调用ps1来安装chocolatey,我提供了在chocolatey网站上记录的powershell开关:
-NoProfile -InputFormat None -ExecutionPolicy Bypass当我运行构建时,我收到以下错误:
System.Management.Automation.RuntimeException:提示用户失败的命令,因为主机程序或命令类型不支持用户交互。尝试支持用户交互的主机程序,例如workflows控制台或workflows ISE,并从不支持用户交互的命令类型中删除与提示符相关的命令。-> System.Management.Automation.RuntimeException:提示用户失败的命令,原因是主机程序或命令类型不支持用户交互。尝试支持用户交互的主机程序,例如workflows控制台或workflows ISE,并从不支持用户交互的命令类型中删除与提示符相关的命令。
我做错了什么?巧克力安装程序需要用户交互,这看起来很奇怪,我认为巧克力的全部意义在于静默安装?
发布于 2017-12-21 14:18:14
似乎你在任务"PowerShell on Target Machines“中有错误的设置。请按照以下步骤操作:
新设置-执行策略绕过新进程;
(( -Scope -Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
查看下面的截图:

发布于 2018-01-02 05:36:11
我做错了什么?巧克力安装程序需要用户交互,这看起来很奇怪,我认为巧克力的全部意义在于静默安装?
通常,它会完全静默,除非有需要输入的东西(比如代理)。最好通过直接在计算机上运行安装程序并查看发生的情况来确定可能导致问题的原因。
详细信息
install.ps1 passes over to chocolateyInstall.ps1,它调用chocolateySetup.psm1。
在查看该脚本时,您可能会注意到install.ps1使用Write-Output,但psm1在某些地方使用Write-Host。这可能会也可能不会导致问题,但考虑到该脚本在PowerShell DSC上运行良好,这是不太可能的。
因此,这可能是几件事:
离线推荐
我们能给出的最好的建议--不要在这个脚本的任何部分使用互联网。如果你想要可靠性,你应该把所有的东西都放在内部。这包括将用于巧克力的install.ps1脚本和chocolatey.nupkg本身。
在https://chocolatey.org/install#completely-offline-install上阅读以了解我们的建议。
https://stackoverflow.com/questions/47905272
复制相似问题