3

観察した

Windows スレーブで実行される Jenkins ビルド ジョブがあります。スレーブには MSBuild が正しくセットアップされており、Windows Server 2012R2 Standard x64 を実行しています。

そのビルド ジョブは、私のプロジェクトの Unittests をコンパイルして実行しています。テストでは、DUnit および DelphiXE2 コンパイラを使用しています。テストのビルドは問題ありません。しかし、テスト実行可能ファイルが開始されると、Runtime error 216 at 00406E56発生します。実行可能ファイルは出力を生成せず、テスト結果ファイルは作成されません。テスト実行可能ファイルはConsoleRunner、GUI ではなく を使用します。

exe をローカル管理者または制限付きユーザーとして実行すると、期待どおりに動作します。

期待される

通常、テスト実行可能ファイルは出力を生成します。テスト実行ごとにドットを出力します。とにかく、exeが実行を開始することを期待しています。

独自の研究

  • 同じ動作を説明しているように見える質問がここにあります。

  • この問題は、Windows Server 2012 および 2012R2 で実行可能ファイルをlocal system(たとえばPSExec経由で) 実行しているときに発生します。

  • Dependency Walkerを使用してライブラリの依存関係を調べたところ、exe からすべてのライブラリにアクセスできることがわかりました。ライブラリ依存関係の PATH およびその他の検索パスにはすべて、少なくとも読み取りアクセス許可があります。local system

  • WOW64 が動作していることを確認しました。

容疑者

一般に、DUnit または Delphi XE2 が可視ユーザー インターフェイスを設定する権限を必要とするかどうかはわかりません。これは、local systemアカウントに欠けているものの 1 つです。

4

0 に答える 0