Powershell [system.reflection.assembly] .loadfile()异常访问在Jenkins运行时被拒绝

时间:2017-06-07 14:20:26

标签: powershell jenkins

我有一个非常简单的Powershell脚本,我想将其用作Jenkins构建的一部分来返回Assembly信息。该脚本包含以下内容:

Write-Host([system.reflection.assembly]::loadfile($args[0])).FullName

当我尝试将此脚本作为Jenkins构建的一部分调用时,我收到以下错误:

.\GetAssemblyInfo.ps1
Exception calling "LoadFile" with "1" argument(s): "Access is denied.
(Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))"

At C:\Jenkins\workspace\Tools\NuGetBuildSupport\GetAssemblyInfo.ps1:1    char:50
+ Write-Host([system.reflection.assembly]::loadfile <<<< ($args[0])).FullName
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

当命令没有作为Jenkins构建的一部分执行时,该命令运行正常。

传递给loadfile的DLL未标记为已阻止

我用来调用Powershell的执行策略是绕过

1 个答案:

答案 0 :(得分:0)

我建议导航到您的服务器&#34;服务&#34;选择Jenkins服务,您可以分配特定用户。作为测试尝试给Jenkins管理员访问权限,如果有效则创建另一个用户并限制访问权限。它在Jenkins基础设施之外运行正常的事实是这个问题的一个指标。

  • 服务:(在开始菜单或公共位置搜索服务:C:\ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs \ Administrative Tools)

  • 导航到Jenkins服务

  • 打开属性
  • 选择登录选项卡并将其设置为具有适当权限的用户(例如:管理员)