2011-09-16 8 views
2

ランニングTFS 2010TFS 2010ビルドファイル 'アクセスが拒否されました'

ビルドプロセスの一部としてバッチファイルを実行するという概念証明をしようとしています。バッチファイルを実行するビルドseqeunceに 'invokeProcess'があります。ビルドを実行すると、部分的に成功し、バッチファイルに「アクセス拒否」エラーが表示されます。

思考?正直なところ、私はどのユーザーがそれを実行しようとしているのかを診断する方法がわからない。

+0

バッチファイルは何をしていますか? –

+0

概念の証明 - ランダムなテキストのダミーテキストファイルの作成 – dah97765

+0

バッチファイルを変更して何もしないでください。 –

答えて

2

ビルドサーバーはTFSサーバーと異なっていますか?私たちの環境では、ビルドサーバーはビルドを実行するすべてのWindowsサービスを実行します。これらのビルドは、ビルドサービスが開始するように構成されているユーザーIDのコンテキストで実行されます。

バッチファイルを実行するには、バッチファイル自体に権限を与える必要があるだけでなく、cmd.exeファイルに権限を与える必要があります(新しいコマンドラインプロセスが実行されるため)。バッチファイルが呼び出す実行ファイル。

procmon(http://technet.microsoft.com/en-us/sysinternals/bb896645)を実行して再度ビルドを実行すると、システムがアクセスを拒否しているファイルが正確に表示されます。

+0

早急な返信ありがとう - 私たちのビルドサーバーは私たちのTFSサーバーとは異なります、はい。私は今procmonをダウンロードし、私が思いつくことができる情報を見ていきます。 – dah97765

+0

幸いです - proimonは多くのデータを生成します。あなたは、あなたが探しているものを得るために、フィルタまたはfind関数を使いこなす必要があります。しかし、私はそれがそこにあることを保証します。あなたがそれを見つけたら、それは素晴らしいでしょう。 – Jeremy

+0

はい、私はそれを見ます。私は関連する行を見つけました - 私のバッチファイル(操作DeviceIOControl_、結果は無効なパラメータです..それは私がバッチファイルに渡しているパラメータのように聞こえるようになります)が間違っています。 TFSで:cmd.exe/c C:\ ... \ testBatch.bat、アクセスが拒否されました。バッチファイル自体は:ECHOテキストはここにあります> test1.txt 終了...だから私は – dah97765

1

ビルドサービスのIDであるサービスアカウントがバッチ場所にアクセスできることを確認しましたか? TFS管理コンソール(TFSサーバーで利用可能)でサービスアカウントを見つけることができます

+0

私は、数分前に解決策を見つけました(上記のコメントを参照)。しかし、私はこれまでの私のブログ記事であっても、感謝の言葉を述べたかっただけです! – dah97765

関連する問題