TFS Build Solution失败:UnauthorizedAccess Microsoft.PowerShell.Commands.ImportModuleCommand

时间:2017-11-15 14:06:24

标签: tfs azure-devops azure-pipelines tfs2017

我正在尝试为TFS 2017内部部署设置我们的第一个构建代理。我已经使用了2012 R2服务器,安装了代理和Visual Studio 2017.代理在TFS中显示正确的功能。我已经采用了一个用于构建ASP.net项目的默认模板,并对其进行了最小的更改。在第一次运行时,我可以看到获取源代码和更新NuGet包的前几个步骤已成功完成。但是构建解决方案步骤失败了,我很难理解问题所在。

构建日志显示以下内容:

2017-11-15T13:16:10.3583612Z ##[section]Starting: Build solution
2017-11-15T13:16:10.3583612Z ==============================================================================
2017-11-15T13:16:10.3583612Z Task         : Visual Studio Build
2017-11-15T13:16:10.3583612Z Description  : Build with MSBuild and set the Visual Studio version property
2017-11-15T13:16:10.3583612Z Version      : 1.119.0
2017-11-15T13:16:10.3583612Z Author       : Microsoft Corporation
2017-11-15T13:16:10.3583612Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkID=613727)
2017-11-15T13:16:10.3583612Z ==============================================================================
2017-11-15T13:16:10.8588602Z Import-Module : AuthorizationManager check failed.
2017-11-15T13:16:10.8588602Z At line:1 char:453
2017-11-15T13:16:10.8588602Z + . ([scriptblock]::Create('if (!$PSHOME) { $null = Get-Item -LiteralPath ''variab ...
2017-11-15T13:16:10.8588602Z + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2017-11-15T13:16:10.8588602Z     + CategoryInfo          : SecurityError: (:) [Import-Module], PSSecurityException
2017-11-15T13:16:10.8588602Z     + FullyQualifiedErrorId : UnauthorizedAccess,Microsoft.PowerShell.Commands.ImportModuleCommand
2017-11-15T13:16:10.9677474Z Invoke-VstsTaskScript : The term 'Invoke-VstsTaskScript' is not recognized as the name of a cmdlet, function, script 
2017-11-15T13:16:10.9677474Z file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct 
2017-11-15T13:16:10.9677474Z and try again.
2017-11-15T13:16:10.9677474Z At line:1 char:786
2017-11-15T13:16:10.9677474Z + ... tlyContinue' ; Invoke-VstsTaskScript -ScriptBlock ([scriptblock]::Create('. ''\\ ...
2017-11-15T13:16:10.9677474Z +                    ~~~~~~~~~~~~~~~~~~~~~
2017-11-15T13:16:10.9677474Z     + CategoryInfo          : ObjectNotFound: (Invoke-VstsTaskScript:String) [], CommandNotFoundException
2017-11-15T13:16:10.9677474Z     + FullyQualifiedErrorId : CommandNotFoundException
2017-11-15T13:16:10.9677474Z  
2017-11-15T13:16:10.9989971Z ##[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 '\\hidden-unc-path\_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda\1.119.0\ps_modules\VstsTaskSdk\VstsTaskSdk.psd1' -ArgumentList @{ NonInteractive = $true } -ErrorAction Stop ; $VerbosePreference = 'SilentlyContinue' ; $DebugPreference = 'SilentlyContinue' ; Invoke-VstsTaskScript -ScriptBlock ([scriptblock]::Create('. ''\\hidden-unc-path\_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda\1.119.0\VSBuild.ps1'''))"'.
2017-11-15T13:16:10.9989971Z ##[section]Finishing: Build solution

1 个答案:

答案 0 :(得分:2)

您的PowerShell执行模式设置为需要执行签名脚本。代理程序需要运行本地未签名脚本:

从管理员PowerShell控制台,运行:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
     - scope LocalMachine

然后重启代理。