VS IDE起動時にTFSへの自動接続をやめたい

Visual Studioを起動後、チームエクスプローラーのタブを表示すると自動的にTFSに接続しようとします。
複数のVS IDEを起動したときに、同じチームプロジェクトに接続する場合はいいのですが、別々のチームプロジェクトに接続するとか、Team Foundation Serviceに接続していた後でまた起動すると認証画面が表示されて面倒とかいった場合には、レジストリを変更することで自動接続をしないようにできます。

レジストリエディタで
「HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\TeamFoundation」
を開き、DWORDで"AutoLoadServer"を作成し、値は0とします。

これを設定するだけで、その次から起動するVS IDEからは自動接続しません。
ちなみに、VS2010とかVS2008とかの場合はバージョン番号を変えるだけです。
・11.0→VS2012
・10.0→VS2010
・ 9.0→VS2008

※複数の作業をパラレルに行うと作業効率が悪くなるので、極力避けましょう( ̄▽ ̄)

MSC2012参加 2日目

MSC2012参加 1日目」の続きです。
※間違いがあるかも知れませんが、あくまで個人的なメモですのでご容赦願います。

○KeyNote
 Office2013に関する内容がメインでした。
 ・操作の先読み
 ・マウスクリックとタッチとで異なる表示(表示間隔が異なる)
 ・ソーシャル連携

○パートナーセッション
 某社のサーバ紹介を聞きました。

○Windows Server 2012で自動管理の限界に挑戦してみる
 ・ADサーバどう追加しますか?
  →今まではdcpromoたたいて、OSの自動化はスクリプト作って・・・
 ・WS2012はPowerShellでDC構築が可能
  複製する場合はコピー元のDCマシンを停止する必要があるので、最低限2台のDCが必要
  クローン先情報を先に埋め込んだ後にエクスポート→インポート→起動
 ・Windows Management Framework 3.0でWS2008R2もPowerShell3,0OK
 ・Windows Workflow Foundationとの統合
 ・ジョブのスケジューリング
 ・堅牢なPSセッション
  PSセッションに他のコンピュータから接続可能
  →セッション情報をターゲット側に保有
  リモートセッション接続はWebAccessもある
 ・ワークフロー
  パラレル
   例:VMの移動
     1台ずつだと遅い
     foreachに-parallelをつけて、パラレル実行
  サスペンド
 ・管理しやすいシステム構成
  ComputeとStorageを分離
  ScaleOutFileServerは最大8ノード、ここにVHDを乗せる
  SMB3.0 Witness
   「(俺に)何かあったら教えて」的な役割
  SMB3.0マルチチャネルの状態もPowerShellで確認可能
  →ポートは445?
   インターフェースあたりのセッション数のデフォルトは4
   コア数が多いと効果が大きい(4コアぐらいだとあまり変わらない)
 「もう何でもPowerShellで設定」って感じです。

○サーバー構成の選択肢を広げる Windows Server 2012 の新しいファイル & ストレージ サービス
 ・ストレージ仮想化によるデータ管理の効率化
  記憶域プール→仮想ストレージ→ストレージサービス(SMB/CIFS、iSCSI Targer、NFS)
 ・シンプロビジョニングと重複除去
 ・シナリオ
  拠点サーバに低コストでデータ信頼性と管理性を追加
  プライベートクラウド基盤としての柔軟な拡張性
 ・ユーザ/デバイス情報とデータ属性に応じたアクセス制御
  きめ細かなアクセス管理
  文書の分類を自動的に実施しアクセス管理に利用
  必要に応じて暗号化などの自動処理も追加可能
  ダイナミックアクセス制御
   「自分が所属する部署が作成した文書のみ閲覧可能」「モバイル端末以外からのみ閲覧可能」
   というルールを作成
   →グループによる煩雑なアクセス権設定ではなくなる
   フォルダ/ファイルに「分類」プロパティタブが追加されている
   ※Win8/WS2012のみ参照/設定可能
   別サーバに同じルールを適用したいときには「集約型ポリシー」(テンプレート)を適用
 ・高機能ストレージやクラウドサービスとの連携
  データ転送処理を高機能ストレージにオフロード(Offloaded Data Transfer)
   サーバ間はトークンの授受のみ。実データ転送はストレージ間でのみ発生。
  オンラインストレージを保存先に(Windows Azure Online Backupサービス)
   データは暗号化して保存
   「使った分だけ」転送

○なぜ Oracle Database をやめたのか。~SQL Server への移行事例で語るその理由~
 ・SQL Serverの現在
  悪い評価は昔(SQL Server 2000ごろ)の話が大半
  日経コンピュータ:顧客満足度(2012)/パートナー満足度No1(2011)
  2009年 Oracle    21%→2011年30%→2014年27%
      SQL Server46→    50%→   54%
 ・SAP(基幹系システム)での新規導入数No1
 ・脆弱性
  2002年:Oracle:21, SQL Server:24
  2011年:       52,             1
 ・Oracleとの3つの違い
  ・1コアあたりの単価
   Oracle Enterprise    \5,163,000
   SQL 2012 Enterprise  \2,560,000
  ・オールインワン
   Oracleは有償オプション(Ent同士で比較)
  ・ランニングコスト
   SQLは保守費用の選択が可能
    パッチのみなら保守費不要という選択も可能
   Oracleは22%(年間)が発生(社内の全システムに対して)、毎年2%の値上げ
 ・構成例別コスト比較
  金額がモロに出てたので省略w
 ・移行
  ・移行アセスメントサービス
  ・BIツールが標準!
  ・データ増大によるパフォーマンス低下→再構築
   コスト安い、1億5000万件からの抽出が1秒以内
  ・システム更改
   保守費が高い!
   RACよりもAlways On
 ・Oracle Migration Assessment Service(OMA)
  移行コストを算出するサービス
  Oracleに精通したパートナーによる診断
  アセスメントレポートを提供
  質問可能な報告会を実施
  移行が本当に難しいときには「難しい」といいます!
  無償だが、
   ・原則として1インスタンス
   ・Oracle Enterpriseが対象、もしくはSQL Server Enterpriseが利用予定対象
   ・情報システム部門への説明会が実施可能である
   ・本当に移行を検討している
 無償で受けれるのは大きいですね

○Visual Studio 2012 新機能解説 ~絶対にここだけはおさえておきたい主要機能~
 ・要件の理解を高めたい
  →ストーリーボーディング(PowerPoint)
   PowerPoint2007以降
 ・日々の作業をより楽に
  →統合開発環境の強化
   ・タブレットのシミュレータ
    ローカルファイルを本当に見ているので、削除とかは注意!
   ・htmlタグ、開始タグを修正すると終了タグも自動修正
   ・カラーピッカー、スポイト
   ・デバッグ対象のブラウザを選択することが可能
   ・ツールボックスの検索
   ・クイック検索
   ・ソリューションエクスプローラーの検索
    メソッド名検索もできる
   ・選択したものだけに関連する依存関係を表示することも可能
   ・ソリューションエクスプローラーを複数起動
    それにソースコードをドッキングすることも可能
   ・「中断」で環境まで含めて復元可能
 ・同じ処理作っちゃったorz
  →コードクローン分析、単体テスト、リファクタリング機能など
   ※1ソリューション内で、C++は対象外w
   ※リファクタリングはテストとセットで!
 ・テストができない(呼び出し先機能が未完成/本番環境に影響があり、簡単に動かせない/条件発生が困難)
  →Microsoft Fakes
   実コードの変更が不要!
 ・障害情報収集
  →IntelliTrace
   運用環境上で収集可能なように強化
   PowerShellで設定
   Trace情報からソースコード表示まで連動できる/その時の変数情報も参照できる
 ここまで出来るか!って感じです。

Windows8とかWindows Server 2012がRTMした直後/Office2013 Preview公開中なので内容盛りだくさんでしたが、ちょっと全般的に内容が浅い気がしたので、個人的にはTechEdが恋しいです。

MSC2012参加 1日目

9/27~28で開催されたthe Microsoft Conference 2012に参加してきました。

ざっくりとですが、メモ。
※間違いがあるかも知れませんが、あくまで個人的なメモですのでご容赦願います。
○KeyNote
 基本的にはビジョンのお話でしたが、
 ・ショーケースからどの商品が取られた、戻されたというデータを収集し、
  Excelで簡単にヒートマップを作成する
 ・ATMの前で携帯電話を掛ける体制をとると、画面に警告メッセージを表示する
 ・PowerViewでブラウザ内でBIができる
 などのびっくりするデモもありました。
 キーワードとしては、
 ・コスト削減/事業継続性(BCP)
  +世界視点、経営スピード向上.社風改革、情報活性化、カバナンス向上、インテリジェントなオペレーション
 ・攻めのIT
  Lync
 ・コンシューマのデジタル化
  デバイス/モバイル/ソーシャル
 ・バックエンドの奥行
  クラウド/ビッグデータ
 ・ジェスチャー/音声認識/マシンラーニング
 ・データセンターのさらなる進化
 ・新しいアプリケーションに対応
 ・あらゆるデータを分析
 ・使いやすいITの実現
 ・オープンな開発環境
 ・一元的なシステム管理
 ・共通のIDとセキュリティ基盤
 ・プラットフォームとしての仮想化
 といったものもありました。

○パートナーセッション
 昼食をGetするためだけに入りました

○ここまで進化した「Windows Server 2012」の概要
 ・クラウドへのバックアップが標準機能に追加
  Windows Azure Online Backup(Preview)
 ・DCの仮想化対応/複製
 ・ポリシーベースのアクセス権限
 ・ディスクの仮想化
 ・CIFS/NFS/iSCSI
 ・De-Dup/4Kセクタ
 ・ReFS
 ・SMBマルチチャンネル/Remote Direct Memory Access(RDMA)
 ・サーバのCPUに負荷をかけない/低い遅延/直接操作の97%程度まで可能/専用のハードが必要(RDMA-capable network interface[R-NIC])
 ・データ処理のオフロード(ODX)
 ・クラスタ不要のライブマイグレーション
 ・Hyper-Vレプリカ
  リモートサイトでの起動確認テストまで対応
 ・NICチーミング
 ・Hyper-V vs VMWare ○×表 ← 日本語版がDL可能
 ・RollingUpdate
 ・Direct Access
  IPv4のみの内部アクセス
  OneTimePassword
  TPMベースの仮想スマートカードサポート
 ・BranchCache
  クラウド上のデータに対応
  管理性とパフォーマンス向上
 ・VDI
 改めて見直すと、もの凄い機能強化です。

○最新ブラウザー Internet Explorer 10 概要
 ・JavaScriptの高速化
  Win7+IE8:4411.4, WIn8+IE10:178.6
 ・クライアントレンダリングを使用→高速描画
 ・Webページから、Windowsストアアプリへ飛ばすことができる
 ・デスクトップ版への半自動誘導:requiresActiveX=True
 ・IE10のFlashを使用するためには、compatibilityviewlistに申請&登録必要
 最後のFlashの話は全然知りませんでした。

○ワークスタイルの再創造を可能にするWindows 8 ライセンス体系
 ・アップグレード経路
   Old Windows Pro
   →Win8 Pro Upg.
    +SA → Win8 Ent.
  Win8 Pro(90日以内)
  →+SA →Win8 Ent
  Thin Client→Windows Virtual Desktop Access → Win8 Entの仮想インスタンスへのアクセス権
 ・Win8 Pro
  AD参加/GP適用
  BitLocker/ファイルシステム暗号化
  RDホスト/オフラインファイル
  クライアントHyper-V/位置自動認識
  ボリュームライセンスとしては、アップグレードのみ
 ・Win8 SA
  Win8 Ent/MDOPの追加購入/Win Thin PC
  仮想環境の利用権/Windows to Go/ローミング権
  CSLの追加購入
 ・Win8 Ent
  Windows to Go/Direct Access/Branch Cache/VDI/App Locker/Windowsアプリのサイドローディング
  取得したEntのライセンスは永久使用可能
 ・MDOP
  UE-V(User Experience Virtualization)
  App-V
  MED-V
  MBAM(Microsoft Bitlocker Administration and Monitoring)
  Microsoft Advanced Group Policy Management(AGPM)
  Microsoft Diagnostics and Recovery Toolser(DaRT)
  SA契約中のみ使用可能
 ・Windows to Go
  SA or VDAが割り当てられた端末で使用可能
  SA端末の主要なユーザはローミング権で社外の端末でWindows to Goの利用が可能
  (Office 2010 SAのローミング権でもw2g対応)
  ・2台目以降の端末へのライセンス
   SAの主要なユーザの2台目以降の端末でCompanion Subscription Lisence(CSL)の取得で、
   4デバイスまでVDI環境へのアクセスやw2gの利用が可能
  ・2台目がWindows RTの場合
   SAがあれば追加ライセンスなくVDI環境の利用が可能
 ・サイドローディング
  Win8 Pro、ワークグループのEntの場合はプロダクトキーが必要
  プロダクトキーはVLSCから取得可能
  一般のボリュームライセンス購入は100個以上

2日目に続く。

Linux統合サービスインストールで依存エラーになった場合

完全にメモなので簡単に。

LinuxIC V3.2で「./install.sh」を実行したときに、依存関係のエラーが発生したときは、以下のコマンドで依存関係をチェックしないようにしてインストールする。
<エラーメッセージ>

017

<インストール>
LinuxICv3.2のCD-ROMがマウントされているディレクトリで実行
rpm -Uhv –nodeps kmod-microsoft-hyper-v-rhel6-43.1.x86_64.rpm
rpm -Uhv –nodeps microsoft-hyper-v-rhel6-43.1.x86_64.rpm
reboot

SharePoint Foundation 2010はWindows Server 2012ではサポートされない

Windows 8/Windows Server 2012/Visual Studio 2012/Team Foundation Server 2012とRTM版が一通りMSDNで公開されたので、そろそろ環境作ってみようかとしたところ、さっそく引っかかりました^ ^;

「まずはサーバ構築」と思い、Windows Server 2012にTFS2012をインストールし、構成ウィザードで「標準の単一サーバ」を選択。
サービス用アカウントを指定し、次画面でSharePointのインストール可否チェックの終了を待っていると、なんとエラーが。



015_2

「SharePoint Foundation 2010はWindows8にインストールできません。」

ですか...orz
(インストーラー内部では、Windows Server 2012は「Windows8Server」として認識していました)

困ったなと思ってるところ、@kkamegawaさんより素早いフォローを頂きました。(ありがとうございます。<(_ _)>)
原因はタイトル通りですが、「Windows Server 2012 では SharePoint Server 2010 がサポートされない」ということです。(KB2724471)
KB上では、インストールに失敗するとか、インストールできてもエラーになるとかという記載になっていますが、TFSの構成ウィザードからインストールする場合は事前チェックでインストーラーすら実行できないようになっています。
今のところ回避策はないようで、手っ取り早いのはWindows Server 2008 R2にTFS2012環境を構築するぐらいみたいです。
SharePoint Foundation 2012とかが出たときにまた確認してみたいと思います。

複数サーバでのTFS構築(2)

前回の続きです。

別サーバにアプリケーション層のみの追加を行います。
構築ウィザードで「アプリケーション層のみ」を選択します。
(余談ですが、このウィザードがあるおかげで構築がほんとに楽です)

指定するのは接続先データベースのみです。

007

ここで注意点ですが、元々のTFSサーバのサービスアカウントがドメインユーザ以外(NT AUTHORITY\LOCAL SERVICEなど)だと、こんなエラーになりますので、事前にサービスアカウントを変更しておきます。

008

自分はこれで半日ぐらい悩みました。ドメインアカウントを使用しろとMSDNにもちゃんと記載されているのですが、すっかり忘れました。

あとは構成チェックだけなのですが、もう1点エラーになる可能性があります。
AD環境ではほとんどないと思いますが、サーバがドメインに追加されていないとエラーになります。

009

構成ウィザードが正常に終了すれば、2台のTFSサーバで運用できます。

複数サーバでのTFS構築(1)

今回も検証ネタです。
「1台のSQL Serverに複数のTFSが接続できるか?」という話があったので確認してみようとしたのですが、ちょっと引っかかるとことがあったのでメモ代わりに残そうかと。
(今回はTFS2010で確認しましたが、おそらくTFS2012でも同じだと思われます)

TFSの構築パターンとしては
 ・基本
 ・標準の単一サーバ
 ・詳細
 ・アプリケーション層のみ
の4種類になりますが、複数サーバ構成ができるのは
 ・詳細
 ・アプリケーション層のみ
の2種類になります。

結論としては、TFSの高可用性のためアプリケーション層を複数サーバに構築すること(Team Foundation Serverファームの作成)は可能ですが、<del>SQL Serverをケチって</del>SQL Serverの台数を最小化するために、構築済みのTFS用SQL Serverを流用することはできないということになります。

具体的には、「とある部署でTFSが構築済みで、コレクション名としてDefaultCollectionを使用しているが、別部署でTFSを使用することになった。」といったときに
○高負荷が予想されるので、サーバを分離したい。コレクション名はDefaultCollectionでなくてもいい。
 →アプリケーション層サーバの追加でOK
○コレクション名をDefaultCollectionで使いたいし、SQL Serverは共用するけど完全に独立して運用したい
 →「詳細」パターンでのセットアップ→NG
となるということです。
(個人的にですが、部署単位で運用を分離したい場合、コレクション単位で部門ユーザを設定し、ビルドサーバは別々に構築するのがいいかなと思います)

あと、複数サーバで構築する際の大前提として、「TFSのサービスアカウントがドメインアカウントで実行されている」というのがありますので、ワークグループ環境では構築できません。

MSDN内に複数サーバでのTFS構築に関する資料がありますので、詳細はそちらで確認してみてください。
(「シナリオ : 既存のインフラストラクチャまたは複数のサーバーを使用した Team Foundation Server のインストール」)

参考程度ですが、NGパターンで構築した場合にどうなるかです。
2台目のサーバにTFSをインストールし、構成ウィザードを「詳細」で進めます。
データベースは1台目に構築済みのものを使用しますので、「SQL Server インスタンス」には1台目のサーバ名を入力します。

005

その後の設定は、プロジェクトの要望に合わせて適用に設定します。
こんな感じで最後の構成チェックまで進められますが、チェックでエラーになってしまいます。

006

エラーメッセージを見ると、データベース「Tfs_Configuration」が作成できないとでています。
このデータベースはコレクション別ではないので、どうしようもありません。

次は、OKパターン(アプリケーション層の追加)の構築概要についてです。

第11回 TFSUG参加

8/30に開催された、第11回TFSUG 「ツールを使いこなすためのツール談義」に参加してきました。

○@riskriskさん:「ツールを使って3年目で分かったこと」
 ツールを導入する側ではなく、利用者からの目線でツール導入時の感想、導入後の状況などについてでした。(スライドはこちら
 中でも個人的に一番感銘したのは「問題を解決しようとしていない、いわゆる死亡フラグ」というところでした。
 「問題に気がつかない」という問題もあるのですが、「気が付いてて解決しない」のは技術者としてよくない状態ということを改めて感じました。

○@matsukawarさん:「VSSからTFSへの移行」
 
 VSSからTFSに移行する事例(計画から移行後のフォローまで)についてでした。
 あまりVSSからの移行事例はネット上にも出てないかと思いますが、移行全体について具体的な内容でしたので、VSSからの移行予定のある方、移行しようかなと思われている方には是非見ていただきたい内容と感じました。
 (スライドはこちら

来月はなんと月2回開催です。
 ・9/10 第55回 Visual Studio 2012 RTM記念 全部VSとTFS
  なぜか「第55回」ですがw、kaorun55さんによる独演会です。
 
  TFS ExpressでのALM/Fakeライブラリ/C++での単体テストなど、ネタたくさんの内容です。

 ・9/20 第12回 TOC厨のプロセス運営
  
  こちらの方面では有名な@shibao800さんと@changeworldさんによるプロセス運営の考え方についてです。
  有償セッションに匹敵する濃い内容が聞けるのではないかと期待してます。

ビルドコントローラーが削除できないとき

TFS管理コンソールからコントローラーを削除しようとしたとき、こんなエラーに出くわしました。

001

別の仮想マシンにエージェントだけ構築していたのを忘れて、その仮想マシンをサクッと消してしまったのですが^ ^;

こんなときは、TFSに格納されている管理情報を編集してしまいます。
※あくまで自己責任で。

TFSのDBサーバで作業をします。(または、TFSのDBサーバに接続できる環境で)

SQL Server Management Studioを起動し、TFSのDBに接続します。
データベースの中から、「Tfs_<コントローラーが接続しているコレクション名>」を探します。
(通常は「TfsDefaultCollection」)

エージェント情報が格納されているテーブルは「tbl_BuildAgent」になります。
まずは格納されているレコードを確認します。
「tbl_BuildAgent」を右クリックし「上位1000行の選択」を選択すると、登録されているエージェントの一覧が表示されます。

002


003

削除対象のエージェントは「DisplayName」に登録されている内容で大体察しがつくと思いますが、よくわからない場合は、削除対象のコントローラーの「ControllerId」を「tbl_BuildController」から確認します。

004

あとは、クエリーで次のSQLを実行してレコードを削除します。(もしくは「上位200行の編集」で直接削除)
DELETE FROM tbl_BuildAgent WHERE ControllerId=[削除対象のコントローラーID]

※別な理由で、ゾンビエージェントだけ削除するときには、AgentIdも条件に含めてください。

AD環境でTFS2012にユーザを登録するとき

ちょっとした小ネタです。

AD環境でTFS2012を構築したあと、ユーザ(グループ)を登録する際に、ちょっと変な動作になるところがあります。
内容は、ユーザ(グループ)を選択する画面にユーザ(グループ)が表示されないので選択できないというものです。

とりあえず、ADに開発者ユーザと開発者用グループを作成します。
・デフォルトで存在するOUの「Users」に開発者ユーザ「Dev01」「Dev02」とグループ「TestDevelopers01」を作成し、TestDevelopers01にDev01とDev02を追加します。

011_2

・次に新規にOU「TestDevelopers」を作成し、その中に開発者ユーザ「Dev11」「Dev12」とグループ「TestDevelopers10」を作成後、TestDevelopers10にDev11とDev12を追加します。

012

ユーザを作成したら、クライアントからチームプロジェクトを作成し、そのチームプロジェクトに対してグループメンバーシップ(ユーザ設定)を設定します。

013

VS2010と違い、グループメンバーシップの設定はWebで設定します。

014

今回は、作成したチームプロジェクト用チームグループ(「TestTFSProject01」)に対してユーザ(グループ)を追加します。
画面真ん中あたりの「追加...」を押下し、「Windowsユーザまたはグループの追加」を選択します。

015

ユーザ(グループ)の追加画面が表示されますので、「参照」を押下します。

016

ユーザ(グループ)の一覧が表示されるのですが...

017

なぜか、最初に登録したユーザ(グループ)が表示されません。
表示されたのは、セットアップ時に作成したデフォルトのAdministratorユーザ(名前を変更したので、イメージ編集してます)と、TFSサービス実行用に作成した「TFSAdmin」だけです。

「選択できないと登録できない!」と思ったのですが、ダメ元で「TestDevelopers01」を直接入力してみます。

018

入力欄の下に「検索結果がありません」と表示されるので、やっぱりダメかと思いましたが、Enterキーを押してみると...

019

ちゃんと登録候補として認識されました^ ^

残りの「TestDevelopers10」も直接入力します。

020

この状態で「変更の保存」を押下すると、ユーザ(グループ)が登録されます。

021

ちなみに、チームプロジェクト作成後、サーバの管理コンソールからはちゃんと選択できます。

022

できれば、サービスパックとかのタイミングで治ってほしいものです。