2017-06-07 28 views
1

私はJenkinsのビルドの一部として使用する非常にシンプルなPowershellスクリプトを持っています。スクリプトの内容は次のとおりです。Powershell [system.reflection.assembly] .loadfile()例外Jenkinsによって実行されたときにアクセスが拒否されました

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

私がしようとすると、私は次のエラーを取得構築ジェンキンスの一環として、このスクリプトを呼び出す:

.\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 

それが一部として実行されていない場合、コマンドは正常に実行されますジェンキンスのビルド。

私はPowerShellを起動するために使用していますブロックされた

実行ポリシーは、バイパス

+2

何ユーザーでありますビルドエグゼキュータは? DLLにアクセスする権限がありますか?そのユーザーとしてPowerShellを対話的に実行する場合、同じコードを実行できますか? – briantist

答えて

0

あるようloadfileに渡されているDLLがマークされていない私はあなたのサーバーの「サービス」に移動をお勧めします選択Jenkinsサービスを使用して、特定のユーザーを割り当てることができます。テストとして、Jenkinsに管理者アクセス権を与えてみると、別のユーザーが作成され、アクセスが制限されます。 Jenkinsインフラストラクチャの外部で正常に動作するという事実は、この問題の指標です。

  • サービスは:(スタートメニューまたは共通の場所でサービスを検索する:C:\はProgramData管理ツール\マイクロソフト\ Windows \スタートメニュー\プログラム\)ジェンキンスサービス

  • 移動

  • プロパティを開き
  • タブでログを選択し、適切な権限(例:管理者)を持つユーザーにそれを設定し
関連する問題