Azure DevOps构建管道且托管代理失败

时间:2019-08-28 07:04:25

标签: azure powershell tfs azure-devops azure-pipelines

我对Azure和TFS以及相关知识还很陌生。因此,如果我在这里混用条款,请原谅。

我正在通过本地安装测试Microsoft Team Foundation Server的功能。我不是服务器本身的管理员,我可以访问其中的一个项目。

在这个项目中,我有一个带有一些python代码的git repo,我正试图为此建立CI构建管道。我也正在手动配置代理以运行此构建管道。暂时,我正在配置要作为代理程序运行的Windows计算机。我能够将其设置为侦听作业,并且当它从TFS服务器提交时也可以接听作业。 (我正在从cmd.exe窗口运行代理) 但是,作为构建管道的一部分,我什至无法执行最简单的命令行任务。

以下是where python的输出:

2019-08-27T14:41:15.1614046Z ##[section]Starting: Find python version
2019-08-27T14:41:15.1623937Z ==============================================================================
2019-08-27T14:41:15.1624042Z Task         : Command Line
2019-08-27T14:41:15.1624091Z Description  : Run a command line script using cmd.exe on Windows and bash on macOS and Linux.
2019-08-27T14:41:15.1624157Z Version      : 2.146.1
2019-08-27T14:41:15.1624203Z Author       : Microsoft Corporation
2019-08-27T14:41:15.1624258Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkID=613735)
2019-08-27T14:41:15.1625058Z ==============================================================================
2019-08-27T14:41:15.6151701Z Cannot invoke method. Method invocation is supported only on core types in this language mode.
2019-08-27T14:41:15.6151921Z At line:1 char:1
2019-08-27T14:41:15.6151968Z + . ([scriptblock]::Create('if (!$PSHOME) { $null = Get-Item -LiteralPa ...
2019-08-27T14:41:15.6152019Z + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2019-08-27T14:41:15.6152077Z     + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
2019-08-27T14:41:15.6152123Z     + FullyQualifiedErrorId : MethodInvocationNotSupportedInConstrainedLanguage
2019-08-27T14:41:15.6152156Z  
2019-08-27T14:41:17.7569608Z Cannot invoke method. Method invocation is supported only on core types in this language mode.
2019-08-27T14:41:17.7569833Z At line:1 char:740
2019-08-27T14:41:17.7570630Z + ... Continue' ; Invoke-VstsTaskScript -ScriptBlock ([scriptblock]::Create ...
2019-08-27T14:41:17.7571090Z +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2019-08-27T14:41:17.7572452Z     + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
2019-08-27T14:41:17.7574051Z     + FullyQualifiedErrorId : MethodInvocationNotSupportedInConstrainedLanguage
2019-08-27T14:41:17.7574178Z  
2019-08-27T14:41:17.8271008Z ##[error]Exit code 1 returned from process: file name 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe', arguments '-NoLogo -Sta -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command ". ([scriptblock]::Create('if (!$PSHOME) { $null = Get-Item -LiteralPath ''variable:PSHOME'' } else { Import-Module -Name ([System.IO.Path]::Combine($PSHOME, ''Modules\Microsoft.PowerShell.Management\Microsoft.PowerShell.Management.psd1'')) ; Import-Module -Name ([System.IO.Path]::Combine($PSHOME, ''Modules\Microsoft.PowerShell.Utility\Microsoft.PowerShell.Utility.psd1'')) }')) 2>&1 | ForEach-Object { Write-Verbose $_.Exception.Message -Verbose } ; Import-Module -Name 'C:\TOOLS\agent\_work\_tasks\CmdLine_d9bafed4-0b18-4f58-968d-86655b4d2ce9\2.146.1\ps_modules\VstsTaskSdk\VstsTaskSdk.psd1' -ArgumentList @{ NonInteractive = $true } -ErrorAction Stop ; $VerbosePreference = 'SilentlyContinue' ; $DebugPreference = 'SilentlyContinue' ; Invoke-VstsTaskScript -ScriptBlock ([scriptblock]::Create('. ''C:\TOOLS\agent\_work\_tasks\CmdLine_d9bafed4-0b18-4f58-968d-86655b4d2ce9\2.146.1\cmdline.ps1'''))"'.
2019-08-27T14:41:17.8301183Z ##[section]Finishing: Find python version

当我在计算机中从命令行交互执行该命令时,该命令运行良好。

为什么管道运行时会调用PowerShell?为什么要执行这么简单的命令这么长的命令?

提前感谢您提供的任何建议。

1 个答案:

答案 0 :(得分:1)

该代理程序在后台使用PowerShell,看来您的IT在阻止运行某些PowerShell脚本的计算机中提供了一些安全保护(也许只是从远程运行)。

尝试在PowerShell中运行它:

$ExecutionContext.SessionState.LanguageMode

我想您会得到以下输出:

ConstrainedLanguage

如果是,请尝试将其切换为FullLanguage

$ExecutionContext.SessionState.LanguageMode = "FullLanguage"

如果它无济于事,也许它也被阻止了,因此您需要与将对其进行更改的IT部门进行交谈,或者尝试像解释的here那样更改注册表,或者将环境变量__PSLockdownPolicy设置为{ {1}}。