2012-01-25 21 views
3

私はMSBuildを持っています。別のユーザーとしてJenkinsを使用してビルドを実行すると、SignToolエラーが発生する

Visual Studioプロジェクトが元々ビルドされていたのと同じユーザーとしてJenkinsを起動した後にビルドを実行すると、正常に動作します。しかし、別のローカル管理者によって開始されたスケジュールされたタスクを通じて同じユーザーとしてプロジェクトを実行すると、プロセスリストのユーザー名が同じであってもビルドが失敗します。

だから、例えば、プロジェクトは、Visual Studioで、ユーザー Adminによって開始されたTomcatでジェンキンスインスタンスを通じて MSBuildを起動するときに、両方の、ユーザー Adminとして罰金構築されたと言います。

私はJohn.adminにユーザーを切り替え、ローカル管理者、およびユーザーAdminとしてTomcatを起動し、私のスケジュールされたタスクを実行し、それが次のSignToolエラーで失敗します。プロセスの一覧で

VCBUILD: SignTool error : ISignedCode::Sign returned error: 0x80092006 

、それはTomcatはAdminというユーザとして実行しています。は、startup.bat(Tomcatはスタンドアロンインストール)で起動していたのと同じように、Adminと同じです。

私はしばらく試してきましたが、タスクを介して起動したときにビルドが失敗する理由を理解できません。誰もが問題を見ることができますか? Jenkinsのビルドは、マシンを再起動して別のローカル管理者から起動した後で成功する必要があります。

編集:私は(スナップインを使用して)Adminユーザーのすべての証明書をコピーされてきた、すべて%PATH%%CD%%USERPROFILE%変数は同じであり、タスクが同じフォルダから実行されています。私が見ることのできるのは、ユーザーセッションIDが異なることだけです。 John.adminでスケジュールされたタスクを開始し、Adminとしてログインすると、java.exeは「すべてのユーザーからプロセスを表示」をクリックするまでプロセスリストに表示されないため、ユーザーとして実行していることがわかりますAdmin

私はかなりアイデアがないので、何か試しても大丈夫です。

答えて

1

私は質問を正しく理解していれば、親プロセス(スケジュールされたタスク)から渡される環境変数やその他のユーザー固有の設定に焦点を当てることをお勧めします子プロセス(Tomcat)を生成します。 Tomcatが管理者として実行されているにもかかわらず、%USERNAME%がJohn.admin、またはおそらく%USERPROFILE%または%PATH%として渡されている可能性があります。

別の可能性があります:特にスケジュールされたタスクの場合、プログラム/スクリプトが見つかったとしても、「開始」フォルダを適切に設定しないことで過去に焼き付けられました。

トラブルシューティングするには、一時的にstartup.batを変更して、環境変数、現在のディレクトリ、およびその他の関連する設定情報の値をログファイルに書き込みます。

SignToolにはあまり慣れていませんが、これはまた役に立ちます - SignTool Error: ISignedCode::Sign returned error: 0x80092006 - 秘密鍵が保存されている場所と検索されている場所についての回答があります。

+0

ヒントはありがたいですが、残念ながらビルドにはまだ失敗しています。このプロジェクトは、もともとはビジュアルスタジオを通じて構築され、署名されていたので、もっと複雑なことが起こっていると私は推測しています。私はそれを調べ続けます。 –

+0

私は努力のために感謝の恩恵を授与しています(そうでなければそれは無駄になるでしょう)、ありがとう!私はまだ何かを理解しようとしています。 –

+0

ご迷惑をおかけして申し訳ございません。 –

関連する問題