web-dev-qa-db-ja.com

Jenkinsの管理者としてバッチファイルを実行しますか?

Win8 x64でJenkinsを使用して、Azureクラウドサービスプロジェクトのビルド(msbuild)、パッケージ(cspack)、実行(csrun)、テスト(nunit)を行っています。 Azureクラウドサービスエミュレーターは管理者として実行する必要があり、さらにポート80/443にバインドする必要があります(したがって「ライト」エミュレーターは使用できません)。

Jenkinsが実行する単純な.batファイルを介して上記を実行しています。通常、ユーザーはマシンにログインせず、マシンが起動し、Jenkinはサービスとして実行され、障害が発生した場合にGITリポジトリとメールを監視し続けます。管理者は、メンテナンスのためだけに手動でマシンにログインします(例:パッチの適用またはマシンの再起動など)。

人手を介さずに管理者として.batを実行するようにJenkinsを構成するにはどうすればよいですか?

デスクトップUIを使用して、コマンドプロンプトを右クリックし、管理者として実行し、UACプロンプトを確認して、昇格された特権のプロンプトを取得し、.batファイルを実行します。

13
DeepSpace101

私たちのソリューションは、Jenkinsのサービスを別のローカル管理ユーザーとして実行することでした。 Jenkinsのインストール後、スタート=> 'サービス' => Jenkinsサービスまでスクロール=>右クリック=>プロパティ=>「ログオン」=>「このアカウント」=>ローカル管理者アカウントを指定します。

うまくいけば、新しいJenkinsのビルドでは、標準のNETWORK SERVICEとして機能しますが、何らかの理由で、私たちのボックスでは機能しませんでした。

20
DeepSpace101

解決策の1つ:

  1. スレーブにbatファイルを作成します。
  2. ファイルのショートカットを作成し、ショートカットを右クリックして、プロパティ->詳細->管理者として実行を確認します。
  3. コントロールパネル->システムとセキュリティ->アクションセンター->ユーザーアカウント制御の設定を変更し、レベルを「通知しない」に設定します。
  4. jenkinsでファイルを実行する

どういうわけか、ファイルはスレーブサーバーで実行されますが、Jenkinsでは失敗を返します。

2
Roy Pun

Widowsマシンに管理者としてログインし、このユーザーからスレーブエージェントを実行すると、すべてが管理者ユーザーの下で実行されます

0
kazerm