0

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が何をしているかをシミュレートするために...

  1. 昇格された管理者権限でコマンド プロンプトを開始しました
  2. 発行済みpsexec -i -u "nt authority\network service" cmd.exe
  3. 上記の xcopy コマンドを含むバッチ ファイルを実行します。

したがって、ステップ 2 では、NETWORK SERVICE アカウントを使用してコマンド プロンプトを起動します。このコマンド プロンプトから手順 3 を実行すると、同じ 2250 エラーが発生しました。したがって、これは良いb / cであり、TFSは見えなくなり、本当の問題に近づいています。

ちょっと笑っただけで、ネットワークサービスをリモートボックスの管理者グループに追加しました。それは問題を解決しませんでした。

だから、ここが私がいる場所です...

  1. 管理者グループのログインを使用して TFS ボックスにログインし、コマンド プロンプトを開き、-u -p パラメータを指定して xcopy コマンド バッチ ファイルを実行すると、すべて正常に動作します。
  2. NETWORK SERVICE アカウントで cmd プロンプトを開始し、手順 1 と同じバッチ ファイルを実行すると、2250 アクセスが拒否されます。

したがって、私の考えでは、この問題は明らかに NETWORK SERVICE アカウントに関連しています。質問は、このアカウントで psexec を実行するにはどうすればよいですか?

アップデート

次に示すのは、管理者グループの NETWORK_SERVICE アカウントと、パス (c:\temp) へのフル アクセスがあることを示すダイアログです。

NETWORK_SERVICE は管理者グループに属しています

ここに画像の説明を入力

4

1 に答える 1

1

2 台のマシンの名前が TFSSERVER と TARGETMACHINE であるとします。

TFS サーバー上の NetworkService は、マシン アカウント、つまりDOMAIN\TFSSERVER$TARGETMACHINE と見なされます。NT AUTHORITY グループのアカウントはすべてローカル アカウントであるため、TFS マシンのネットワーク サービスではなく、TARGETMACHINE のネットワーク サービスを管理者として追加したように見えます。

TFS マシン アカウントをアクセス許可リストに追加して、機能するかどうかを確認してください。

そうでない場合は、この関連する質問を見て、何か役立つかどうかを確認してください: PSEXEC、アクセス拒否エラー

于 2014-12-02T09:25:55.550 に答える