TFS を使用して PSExec を開始し、インストーラーを作成する InstallShield プロセスを実行しています。TFS ビルド エージェントは、NETWORK SERVICE アカウントで実行されます。
-u -p オプションを使用して PSExec を実行すると、コマンドを実行して、リモート マシンに対してコマンド プロンプトからインストーラーを正常にビルドできます。
ただし、TFS では、常に 2250 エラー コードが表示され、インストーラーがビルドされません。
問題を切り分けるために、psexec コマンドを次のように変更しました...
PsExec.exe -accepteula \\<machine> -u <username> -p <password> xcopy /y c:\temp\testing.bat c:\temp\1.bat
コマンドラインから上記を実行すると、ファイルがコピーされます。TFS から上記を実行すると (バッチ ファイルで上記を呼び出す)、2250 で失敗します。
TFSが何をしているかをシミュレートするために...
- 昇格された管理者権限でコマンド プロンプトを開始しました
- 発行済み
psexec -i -u "nt authority\network service" cmd.exe
- 上記の xcopy コマンドを含むバッチ ファイルを実行します。
したがって、ステップ 2 では、NETWORK SERVICE アカウントを使用してコマンド プロンプトを起動します。このコマンド プロンプトから手順 3 を実行すると、同じ 2250 エラーが発生しました。したがって、これは良いb / cであり、TFSは見えなくなり、本当の問題に近づいています。
ちょっと笑っただけで、ネットワークサービスをリモートボックスの管理者グループに追加しました。それは問題を解決しませんでした。
だから、ここが私がいる場所です...
- 管理者グループのログインを使用して TFS ボックスにログインし、コマンド プロンプトを開き、-u -p パラメータを指定して xcopy コマンド バッチ ファイルを実行すると、すべて正常に動作します。
- NETWORK SERVICE アカウントで cmd プロンプトを開始し、手順 1 と同じバッチ ファイルを実行すると、2250 アクセスが拒否されます。
したがって、私の考えでは、この問題は明らかに NETWORK SERVICE アカウントに関連しています。質問は、このアカウントで psexec を実行するにはどうすればよいですか?
アップデート
次に示すのは、管理者グループの NETWORK_SERVICE アカウントと、パス (c:\temp) へのフル アクセスがあることを示すダイアログです。