2012-02-20 7 views
1

コマンドラインからtfs 2010 teambuildのコントローラ(とエージェント)のステータスを取得する方法はありますか?私のコントローラ(約20を持っている)は再起動する必要があります(私たちはこれがなぜか分かります)。何が起きているのかを確認するスクリプト(psexec?)を実行する方法が欲しいです。乾杯コマンドラインからtfs teambuildのコントローラ(とエージェント)のステータスを取得する方法はありますか?

答えて

2

それは次のようにあなたのためにこれを行う小さなコンソールアプリケーションを持つことが可能です:

using System; 
using Microsoft.TeamFoundation.Build.Client; 
using Microsoft.TeamFoundation.Client; 

namespace GetAgentsStatus 
{ 
    class Program 
    { 
     static void Main() 
     { 
      TfsTeamProjectCollection teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("CollectionUri")); 
      IBuildServer buildService = (IBuildServer)teamProjectCollection.GetService(typeof(IBuildServer)); 
      IBuildController buildController = buildService.GetBuildController("BuildControllerName"); 

      foreach (var agent in buildController.Agents) 
      { 
       if(agent.Status == AgentStatus.Offline || agent.Status == AgentStatus.Unavailable) 
       { 
        Console.WriteLine(string.Format("{0} needs restarting",agent.Name)); 
       } 
      } 
     } 
    } 
} 

編集用の任意のビルド定義を開くと、BuildControllerNameの値を取得するには、「デフォルトの構築」に移動します

+0

私はコンソールアプリケーションを考えたことはありません!それは良いアイデアです – timB33

関連する問題