シナリオは次のとおりです。
Windows Server 2012 R2 を実行する AWS EC2 ホストをビルド エージェントとして使用するように TeamCity をセットアップしました。この構成では、TeamCity エージェント サービスは SYSTEM として実行されています。新しいコンパイル プロセスとして FastBuild を実装しようとしています。FastBuild の分散コンパイル機能を使用するには、ビルド エージェント ホストが共有ネットワーク フォルダーにアクセスできる必要があります。残念ながら、あるマシンから別のマシンにこの種のアクセスを許可することはできないようです。
説明をさらに進めるために、名前付きの例を使用します。ネットワーク フォルダー C:\Shared-Folder は、Central-Host という名前のホスト上にあります。ビルド エージェントは Builder-Host にあります。すべてが、AWS セキュリティ グループを介して相互に完全にネットワーク許可されている EC2 ホスト上で Windows Server 2012 R2 を実行しています。必要なのは、Central-Host からディレクトリを共有して、Builder-Host が次のようなディレクトリ構造を介して完全にアクセスできるようにすることです。
\\Central-Host\Shared-Folder
デフォルトの管理者アカウントを使用して両方のホストに RDP 接続することで、ネットワーク共有を非常に簡単にセットアップし、(Builder-Host 上で) \\Central-Host\Shared-Folder の場所を参照できます。コマンド ラインを開いて実行することもできます。
type NUL > \\Central-Host\Shared-Folder\Empty.txt
そのネットワーク上の場所に空のテキスト ファイルが作成されます。
問題は SYSTEM アカウントから発生します。PSTOOLS を取得してコマンドを使用すると、次のようになります。
PSEXEC -i -s cmd.exe
TeamCity によって提供されるコマンドをテストできます。繰り返しますが、これは SYSTEM として実行されているサービスであり、強調する必要がありますが、ユーザー アカウント タイプで TeamCity エージェントを使用するときに発生する他の問題により、通常のユーザーに変更することはできません。
よく検索した結果、ドメインからユーザーとコンピューターを追加できるように Active Directory サービスをセットアップする方法を発見しましたが、その後もアクセス拒否エラーに直面します。私はおそらく何か重要なものを見逃しています。ここの誰かが助けてくれることを願っています. 上記の「type NUL」コマンドを正常に実行できれば、この問題は「解決済み」と見なされると思います。