<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Deepak Khare's Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/deepakkhare/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/deepakkhare/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:21:07 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Migrating a large collection from on premises TFS to Azure hosted service (VSTS)</title>
      <link>https://docs.microsoft.com/archive/blogs/deepakkhare/migrating-a-large-collection-from-on-premises-tfs-to-azure-hosted-service-vsts</link>
      <pubDate>Tue, 05 Jun 2018 23:13:17 GMT</pubDate>
      <dc:creator><![CDATA[Deepak Khare]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/deepakkhare/?p=235</guid>
      <description><![CDATA[&nbsp;

The TFS Database Import Service provides a way for Team Foundation Server (TFS) customers...]]></description>
      <content:encoded><![CDATA[&nbsp;

The TFS Database Import Service provides a way for Team Foundation Server (TFS) customers to complete a high-fidelity migration into Visual Studio Team Services (VSTS). It works by importing a collection in its entirety into a brand new VSTS account.

The Import Service has been used by large number of customers, small-to-large, to successfully migrate to VSTS. This includes using it internally at Microsoft to move older TFS instances into VSTS. Helping us achieve our larger goal of using one engineering system – more formerly called the 1ES effort. As you can imagine, there are lots of exceptionally large collections within at Microsoft. We thought we could share our experiences from a recent migration of a collection that was around 10.5 TB in total size. Yep, that TB for Terabytes 😊.

Please refer to my other blogs for details about the process, tool, common commands etc. <a href="https://blogs.msdn.microsoft.com/deepakkhare/tfs-to-vsts-migration/">here</a>. You can also learn more about the Import Service by visiting <a href="https://aka.ms/tfsimport">https://aka.ms/tfsimport</a>.

Below are some statistics on the size of the collection we imported. It’s truly a big one!

&nbsp;
<table width="306">
<tbody>
<tr>
<td width="174">Description</td>
<td width="108">Numbers</td>
</tr>
<tr>
<td width="174">Full database size</td>
<td width="108">10578 GB</td>
</tr>
<tr>
<td width="174">Database meta data size</td>
<td width="108">583 GB</td>
</tr>
<tr>
<td width="174">Number of users</td>
<td width="108">2800</td>
</tr>
<tr>
<td width="174">Team Projects</td>
<td width="108">5</td>
</tr>
<tr>
<td width="174">Work Items Count</td>
<td width="108">19.2 Million</td>
</tr>
<tr>
<td width="174">Test runs Count</td>
<td width="108">1.3 Million</td>
</tr>
<tr>
<td width="174">Builds Count</td>
<td width="108">28.7 Thousand</td>
</tr>
</tbody>
</table>
&nbsp;

<strong><u>Migration time:</u></strong>

Migrating the collection including all the data within the collection took ~92 hours. Please note that the migration time may differ based on the data/content size, content type, network speed etc.

<strong><u>Performance:</u></strong>

For most of companies/team’s performance of the service is crucial factor to make the change. I am glad to share that in our testing after migrating this large collection, the work items, builds and other information was accessible in similar of less time than on-premises collection.

<strong><u>What if I need help</u></strong>

Please reach out to migration team in Microsoft (<u>vstsdataimport@microsoft.com</u>)  to discuss/plan the migration plan or if you have any queries.

<strong><u>Tips &amp; Tricks:</u></strong>

If your on-premises SQL server does not have in-bound &amp; out-bound internet collection you can host the SQL database to an azure hosted SQL virtual machine (VM). It’s recommended to host the VM in the same region where you are planning to host your VSTS account, data transfer rate from the same region will be much better.

If you need to transfer collection backup to Azure hosted VM, plan to divide the backup file in multiple files (I divided backup to 24 files) and use power of parallelism to transfer files).

Below are details to speed-up the process:
<ol>
 	<li>If your collection is not hosted on a sever which allows inbound internet traffic, you will have to restore the collection on an internet inbound/outbound enabled server virtual machine. To reduce overhead of network latency, It's  recommenced that you host the server/virtual machine in the same region as your planned VSTS account. Please refer to <a href="https://aka.ms/tfsimport">migration guide</a> for the setup options.</li>
</ol>
&nbsp;
<ol start="2">
 	<li>Collection database Backup: Divide collection backup into multiple files (16 to 24 files) and use <a href="https://docs.microsoft.com/en-us/sql/t-sql/statements/backup-transact-sql?view=sql-server-2017">MAXTRANSFERSIZE</a> hint. This approach reduced total backup duration by 75% for our collection database.</li>
</ol>
&nbsp;

Example:

BACKUP DATABASE [Tfs_DefaultCollection] TO

DISK = N'H:\MSSQL\BAK\Tfs_DefaultCollection_1.bak',

DISK = N'H:\MSSQL\BAK\Tfs_DefaultCollection_2.bak',

DISK = N'H:\MSSQL\BAK\Tfs_DefaultCollection_3.bak',

DISK = N'H:\MSSQL\BAK\Tfs_DefaultCollection_4.bak',

DISK = N'H:\MSSQL\BAK\Tfs_DefaultCollection_5.bak',

.

.

.

.

DISK = N'H:\MSSQL\BAK\Tfs_DefaultCollection_23.bak',

DISK = N'H:\MSSQL\BAK\Tfs_DefaultCollection_24.bak'

&nbsp;

WITH NOFORMAT, NOINIT,  NAME = N'Tfs_DefaultCollection-Full Database Backup',

SKIP, NOREWIND, NOUNLOAD, COMPRESSION, MAXTRANSFERSIZE = 4194304, STATS = 5

GO

&nbsp;
<ol start="3">
 	<li>Use AZCopy to transfer backup to Azure blob/ VM: You can get optimal performance for database files copy to Azure blob/VM using <a href="https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azcopy">AZCopy</a> utility.</li>
</ol>
&nbsp;
<ol start="4">
 	<li>Initiate multiple instance of AZCopy simultaneously: Running multiple instances of AZCopy in parallel (for different files upload) would help speed-up the upload/download files to/from blob storage. You will have to use /z switch to run parallel instances of AZCopy</li>
</ol>
&nbsp;

Example: AzCopy /Source:H:\MSSQL\BAK\ /Dest:https://&lt;storage account&gt;.blob.core.windows.net/tfsMigration /SourceKey:"&lt;SAS&gt;" /pattern:"File.bak" /S /z:&lt;unique folder for azcopy journal file&gt;

&nbsp;

<strong><u>Summary:</u></strong>

In addition to small collections you can migrate large collections to VSTS and can take advantage of hosted service.

&nbsp;

<span style="color: #000000;font-family: Calibri">Special thanks to Rogan Ferguson for review &amp; contribution.</span>]]></content:encoded>
    </item>
    <item>
      <title>On-premises TFS to VSTS Migration Whitepaper</title>
      <link>https://docs.microsoft.com/archive/blogs/deepakkhare/on-premise-tfs-to-vsts-migration-whitepaper</link>
      <pubDate>Tue, 20 Jun 2017 16:59:02 GMT</pubDate>
      <dc:creator><![CDATA[Deepak Khare]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/deepakkhare/?p=135</guid>
      <description><![CDATA[&nbsp;

If your company/Team is planning to migrate on-premises Team foundation Server (TFS)...]]></description>
      <content:encoded><![CDATA[&nbsp;

If your company/Team is planning to migrate on-premises Team foundation Server (TFS) collection(s) to Visual Studio Team Services (VSTS), whitepaper (link below) with this post can provide detailed information about the process &amp; migration. White paper includes detailed information with screenshots to migrate a TFS 2008 based instance to VSTS.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2017/06/TFS-to-VSTS-Migration_WhitePaper.docx">TFS-to-VSTS-Migration_WhitePaper</a>

<a href="https://msdnshared.blob.core.windows.net/media/2017/06/TFS-to-VSTS-Migration_WhitePaper_MSWord2003.doc">TFS-to-VSTS-Migration_WhitePaper_MSWord2003</a>

&nbsp;

&nbsp;

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>On-Prem TFS to VSTS Migration - Helpful Information</title>
      <link>https://docs.microsoft.com/archive/blogs/deepakkhare/tfs-to-vsts-migration</link>
      <pubDate>Wed, 01 Mar 2017 01:05:05 GMT</pubDate>
      <dc:creator><![CDATA[Deepak Khare]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/deepakkhare/?p=115</guid>
      <description><![CDATA[&nbsp;

If your company/Team is planning to migrate on-Prem Team foundation Server (TFS)...]]></description>
      <content:encoded><![CDATA[&nbsp;

If your company/Team is planning to migrate on-Prem Team foundation Server (TFS) collection(s) to Visual Studio Team Services (VSTS), VSTS team have published documentation (<a href="https://aka.ms/TFSDataImport">Here</a>) to get started on the process.

If you are already in process or getting started to move on-Prem TFS collection(s) to VSTS below are some of the commands which I found very useful and convenient to expedite the process.

A TFS Migrator tool developed by the VSTS team helps migrating on-Prem TFS data to VSTS. The tool can be downloaded from <a href="https://aka.ms/TFSDataImport">here</a>

<em><span style="color: #0000ff">♦</span> <span style="text-decoration: underline">Running the TFSMigrator tool from remote (other than Application Tier) machine</span>:</em>
<p style="padding-left: 30px">Note that you still need required permissions to run the tool.</p>
<p style="padding-left: 30px">o   In command prompt navigate to TFSMigrator tool directory</p>
<p style="padding-left: 30px">o   Execute below command (Update the collection URL and Database server name)</p>
TfsMigrator validate /collection:<strong>CollectionURL</strong> /connectionString:"Data Source=<strong>DatabaseServerName</strong>;Initial Catalog=Tfs_Configuration;Integrated Security=True"

Validation result will be logged in a file (available under TfsMigrators log\Collection folder). Generally there are 3 types (Import/process/validation) of errors in the file. Resolution for common errors can be found via below links:
<ul>
 	<li>Migration troubleshooting: <a href="https://docs.microsoft.com/en-us/vsts/articles/migration-troubleshooting">Link</a></li>
 	<li>Import process errors: <a href="https://docs.microsoft.com/en-us/vsts/work/customize/import-process/resolve-errors">Link</a></li>
 	<li>Process config errors: <a href="https://docs.microsoft.com/en-us/vsts/work/customize/troubleshoot-process-configuration">Link</a></li>
</ul>
&nbsp;

Based on the validation result (The validation result file will be available in the TFSMigrator tool directory), you may have to make changes in various files to get the collection in the state, before it can be migrated to VSTS. Always, always test these changes on non-production/sandbox environment to avoid possible impact to the production user(s)/data.

“witadmin” application used in below commands generally installed with Visual Studio and is available

For Visual Studio 2015: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE

For Visual Studio 2013: C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE

&nbsp;

<span style="color: #0000ff">♦<em> </em></span><span style="text-decoration: underline"><em>Import/Export work item definition file</em></span>

witadmin exportwitd /collection:<strong>CollectionURL</strong> /p:"<strong>TeamProjectName</strong>" /n:"FeatureRequest" /f:C:\Temp\FeatureRequest.xml

witadmin importwitd /collection:<strong>CollectionURL</strong> /p:"<strong>TeamProjectName</strong>" /f:C:\Temp\FeatureRequest.xml

&nbsp;

<span style="color: #0000ff">♦</span> <em><span style="text-decoration: underline">Import/Export work item categories</span></em>

witadmin exportcategories /collection:<strong>CollectionURL</strong> /p:"<strong>TeamProjectName</strong>" /f:C:\Temp\categories.xml

witadmin importcategories /collection:<strong>CollectionURL</strong> /p:"<strong>TeamProjectName</strong>" /f:C:\Temp\categories.xml

&nbsp;

<span style="color: #0000ff">♦</span> <em><span style="text-decoration: underline"> List/Export/Import link types</span></em>

witadmin listlinktypes /collection:<strong>CollectionURL</strong>

witadmin exportlinktype /collection:<strong>CollectionURL</strong> /f:O:\temp\Linktype.xml

witadmin importlinktype /collection:<strong>CollectionURL</strong> /f:O:\temp\Linktype.xml

&nbsp;

<span style="color: #0000ff">♦</span> <em><span style="text-decoration: underline">Export/import Process config file</span></em>

witadmin exportprocessconfig /collection:<strong>CollectionURL</strong> /p:”<strong>TeamProjectName”</strong> /f:C:\Temp\ProcessConfig.xml

witadmin importprocessconfig /collection:<strong>CollectionURL</strong> /p:”<strong>TeamProjectName”</strong> /f:C:\Temp\ProcessConfig.xml

&nbsp;

I will be keep on updating this post based on the new learning(s).]]></content:encoded>
    </item>
    <item>
      <title>TFS: Work items delete</title>
      <link>https://docs.microsoft.com/archive/blogs/deepakkhare/tfs-work-items-delete</link>
      <pubDate>Sat, 12 Nov 2016 16:33:00 GMT</pubDate>
      <dc:creator><![CDATA[Deepak Khare]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/deepakkhare/2015/11/12/tfs-work-items-delete/</guid>
      <description><![CDATA[As a TFS/Collection administrator I come across scenarios to improve overall health of the TFS...]]></description>
      <content:encoded><![CDATA[<div class="WordSection1">
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="font-family: verdana,geneva;font-size: small">As a TFS/Collection administrator I come across scenarios to improve overall health of the TFS environment.</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt">&nbsp;</p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: black;font-family: verdana,geneva;font-size: small"><span style="color: black;line-height: 107%">One common scenario is cleaning up data. Periodically I will clean up data to makes sure the TFS collection is in a manageable/healthy state. This also helps to improve overall TFS performance and reduced sync latency in processes like warehouse sync adaptors.</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt">&nbsp;</p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: black;font-family: verdana,geneva;font-size: small">Below are SQL queries to find list of work items (List may vary based on the filter condition, change where clause based on business required):</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: black">&nbsp;</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><strong><span style="text-decoration: underline"><span style="color: black">For TFS 2013/2012:</span></span></strong></p>
<p class="MsoNormal" style="line-height: normal;margin-bottom: 0pt"><span style="color: blue;font-family: Consolas;font-size: 9.5pt">SELECT</span><span style="font-family: Consolas;font-size: 9.5pt"> ID<span>&nbsp; </span><span style="color: blue">FROM</span> [WorkItemsAre] <span style="color: blue">WITH </span><span style="color: gray">(</span><span style="color: blue">NOLOCK</span><span style="color: gray">)</span></span></p>
<p class="MsoNormal" style="line-height: normal;margin-bottom: 0pt"><span style="color: blue;font-family: Consolas;font-size: 9.5pt">WHERE</span><span style="font-family: Consolas;font-size: 9.5pt"> [Created Date] <span style="color: gray">&lt;</span> <span style="color: fuchsia">DATEADD</span><span style="color: gray">(</span><span style="color: fuchsia">MONTH</span><span style="color: gray">,</span> <span style="color: gray">-</span>18<span style="color: gray">,</span> <span style="color: fuchsia">GETUTCDATE</span><span style="color: gray">())</span></span></p>
<p class="MsoNormal" style="line-height: normal;margin-bottom: 0pt">&nbsp;</p>
<p class="MsoNormal" style="line-height: normal;margin-bottom: 0pt"><span style="font-family: verdana,geneva;font-size: small">You may also consider deleting work items based on last updated/changed date. Below is the query to get the work item ID's:</span></p>
<p class="MsoNormal" style="line-height: normal;margin-bottom: 0pt"><strong><br /></strong></p>
<p class="MsoNormal" style="line-height: normal;margin-bottom: 0pt"><span style="color: blue;font-family: Consolas;font-size: 9.5pt">SELECT</span><span style="font-family: Consolas;font-size: 9.5pt"> ID<span>&nbsp; </span><span style="color: blue">FROM</span> [WorkItemsAre] <span style="color: blue">WITH </span><span style="color: gray">(</span><span style="color: blue">NOLOCK</span><span style="color: gray">)</span></span></p>
<p class="MsoNormal" style="line-height: normal;margin-bottom: 0pt"><span style="color: blue;font-family: Consolas;font-size: 9.5pt">WHERE</span><span style="font-family: Consolas;font-size: 9.5pt"> [Changed Date] <span style="color: gray">&lt;</span> <span style="color: fuchsia">DATEADD</span><span style="color: gray">(</span><span style="color: fuchsia">MONTH</span><span style="color: gray">,</span> <span style="color: gray">-</span>18<span style="color: gray">,</span> <span style="color: fuchsia">GETUTCDATE</span><span style="color: gray">())</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: black">&nbsp;</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><strong><span style="text-decoration: underline"><span style="color: black">For TFS 2015:</span></span></strong></p>
<p class="MsoNormal" style="line-height: normal;margin-bottom: 0pt"><span style="color: blue;font-family: Consolas;font-size: 9.5pt">SELECT</span><span style="font-family: Consolas;font-size: 9.5pt"> ID<span>&nbsp; </span><span style="color: blue">FROM</span> [tbl_WorkItemCoreLatest] <span style="color: blue">WITH </span><span style="color: gray">(</span><span style="color: blue">NOLOCK</span><span style="color: gray">)</span></span></p>
<p class="MsoNormal" style="line-height: normal;margin-bottom: 0pt"><span style="color: blue;font-family: Consolas;font-size: 9.5pt">WHERE</span><span style="font-family: Consolas;font-size: 9.5pt"> [CreatedDate] <span style="color: gray">&lt;</span> <span style="color: fuchsia">DATEADD</span><span style="color: gray">(</span><span style="color: fuchsia">MONTH</span><span style="color: gray">,</span> <span style="color: gray">-</span>18<span style="color: gray">,</span> <span style="color: fuchsia">GETUTCDATE</span><span style="color: gray">())</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: black">&nbsp;</span><span style="color: black">&nbsp;</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: red;font-family: verdana,geneva"><span style="text-decoration: underline"><strong><span style="background-color: #ffff00">Note</span></strong></span>: Work item destroy command used in the PowerShell script below is non recoverable command. Take required database backups if work items may need to be accessed in future.</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt">&nbsp;</p>
<p><span style="font-family: verdana,geneva;font-size: small">During the work item destroy operation Team Foundation Server warehouse database will not be updated. Based on the amount of data deleted warehouse may show data latency for hours until warehouse adaptor will catch with all the updates.</span></p>
<p>&nbsp;</p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: black;font-family: verdana,geneva">Copy and paste below script in a PowerShell file (with .ps1 extension), update the variable values mentioned in the list #4 below and run the command from a machine where witadmin tool is installed (Generally available after visual studio installation). Open PowerShell command window and execute the script.</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt">&nbsp;</p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: black;font-family: verdana,geneva"><strong>Note:</strong> Account running below script should have team foundation administrator or collection administrator access.</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt">&nbsp;</p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="font-family: verdana,geneva">To delete large number of records you may also run multiple instances of below script.&nbsp;I have not seen any issues while running 2 instances of the script to delete 300K records.</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt">&nbsp;</p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: darkgreen;font-family: 'Lucida Console';font-size: 9pt">########TFS Work Items Bulk Destroy Automation Script##########</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: darkgreen;font-family: 'Lucida Console';font-size: 9pt">#Notes: </span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: darkgreen;font-family: 'Lucida Console';font-size: 9pt">#1) This script requires to setup file/folder path, validate the file/folders path before running the script</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: darkgreen;font-family: 'Lucida Console';font-size: 9pt">#2) start the powershell window as Administrator and run the script</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: darkgreen;font-family: 'Lucida Console';font-size: 9pt">#3) This script requires share and admin access on the destination server, make sure your account or the account under which script is executing is member of admin group </span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: darkgreen;font-family: 'Lucida Console';font-size: 9pt">#on the destination server</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: darkgreen;font-family: 'Lucida Console';font-size: 9pt">#4) Update following:</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: darkgreen;font-family: 'Lucida Console';font-size: 9pt">#<span>&nbsp;&nbsp; </span>4.1: $CollectionURL</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: darkgreen;font-family: 'Lucida Console';font-size: 9pt">#<span>&nbsp;&nbsp; </span>4.2: $WitAdmin tool location</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="font-family: 'Lucida Console';font-size: 9pt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: darkgreen"># For VS 2015, Default location is C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="font-family: 'Lucida Console';font-size: 9pt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: darkgreen"># For VS 2013, Default location is C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: darkgreen;font-family: 'Lucida Console';font-size: 9pt">#<span>&nbsp;&nbsp; </span>4.3: $WI_List</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: darkgreen;font-family: 'Lucida Console';font-size: 9pt">#<span>&nbsp;&nbsp; </span>4.4: $logfile</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: darkgreen;font-family: 'Lucida Console';font-size: 9pt">####################</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt">&nbsp;</p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: orangered;font-family: 'Lucida Console';font-size: 9pt">$CollectionURL</span><span style="font-family: 'Lucida Console';font-size: 9pt"> <span style="color: darkgray">=</span> <span style="color: darkred">"https://tfs:8080/tfs/CollectionName"</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: orangered;font-family: 'Lucida Console';font-size: 9pt">$WitAdminLocation</span><span style="font-family: 'Lucida Console';font-size: 9pt"> <span style="color: darkgray">=</span> <span style="color: darkred">"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE"</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: orangered;font-family: 'Lucida Console';font-size: 9pt">$WI_List</span><span style="font-family: 'Lucida Console';font-size: 9pt"> <span style="color: darkgray">=</span><span>&nbsp; </span><span style="color: blue">Get-Content</span> <span style="color: darkred">"C:\WI_List.txt"</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: orangered;font-family: 'Lucida Console';font-size: 9pt">$logfile</span><span style="color: darkgray;font-family: 'Lucida Console';font-size: 9pt">=</span><span style="color: darkred;font-family: 'Lucida Console';font-size: 9pt">"C:\log.txt"</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: orangered;font-family: 'Lucida Console';font-size: 9pt">$ExecutionStartTime</span><span style="font-family: 'Lucida Console';font-size: 9pt"> <span style="color: darkgray">=</span> <span style="color: blue">Get-Date</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: orangered;font-family: 'Lucida Console';font-size: 9pt">$WICount</span><span style="font-family: 'Lucida Console';font-size: 9pt"> <span style="color: darkgray">=</span> <span style="color: purple">0</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: darkred;font-family: 'Lucida Console';font-size: 9pt">"## Starting WI Destroy @ </span><span style="color: orangered;font-family: 'Lucida Console';font-size: 9pt">$ExecutionStartTime</span><span style="color: darkred;font-family: 'Lucida Console';font-size: 9pt"> ##"</span><span style="color: darkgray;font-family: 'Lucida Console';font-size: 9pt">|</span><span style="font-family: 'Lucida Console';font-size: 9pt"> <span style="color: blue">Out-File</span> <span style="color: orangered">$logfile</span> <span style="color: navy">-Append</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: darkred;font-family: 'Lucida Console';font-size: 9pt">"Collection URL: </span><span style="color: orangered;font-family: 'Lucida Console';font-size: 9pt">$CollectionURL</span><span style="color: darkred;font-family: 'Lucida Console';font-size: 9pt">"</span><span style="font-family: 'Lucida Console';font-size: 9pt"> <span style="color: darkgray">|</span> <span style="color: blue">Out-File</span> <span style="color: orangered">$logfile</span> <span style="color: navy">-Append</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: darkblue;font-family: 'Lucida Console';font-size: 9pt">foreach</span><span style="font-family: 'Lucida Console';font-size: 9pt"> (<span style="color: orangered">$WIID</span> <span style="color: darkblue">in</span> <span style="color: orangered">$WI_List</span>)</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="font-family: 'Lucida Console';font-size: 9pt"><span>&nbsp;&nbsp;&nbsp; </span>{</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="font-family: 'Lucida Console';font-size: 9pt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue">CD</span> <span style="color: orangered">$WitAdminLocation</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="font-family: 'Lucida Console';font-size: 9pt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue">.\witadmin</span> <span style="color: blueviolet">destroywi</span> <span style="color: blueviolet">/collection:</span><span style="color: orangered">$CollectionURL</span> <span style="color: blueviolet">/id:</span><span style="color: orangered">$WIID</span> <span style="color: blueviolet">/noprompt</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="font-family: 'Lucida Console';font-size: 9pt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: darkred">"WI ID: </span><span style="color: orangered">$WIID</span><span style="color: darkred"> Destroyed"</span> <span style="color: darkgray">|</span> <span style="color: blue">Out-File</span> <span style="color: orangered">$logfile</span> <span style="color: navy">-Append</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="font-family: 'Lucida Console';font-size: 9pt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: orangered">$WICount</span> <span style="color: darkgray">=</span> <span style="color: orangered">$WICount</span> <span style="color: darkgray">+</span> <span style="color: purple">1</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="font-family: 'Lucida Console';font-size: 9pt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue">Write-Host</span> <span style="color: darkred">"</span><span style="color: orangered">$WICount</span><span style="color: darkred"> Work Items Deleted"</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="font-family: 'Lucida Console';font-size: 9pt"><span>&nbsp;&nbsp;&nbsp; </span>} </span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="font-family: 'Lucida Console';font-size: 9pt">&nbsp;</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: orangered;font-family: 'Lucida Console';font-size: 9pt">$ExecutionEndTime</span><span style="font-family: 'Lucida Console';font-size: 9pt"> <span style="color: darkgray">=</span> <span style="color: blue">Get-Date</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: darkred;font-family: 'Lucida Console';font-size: 9pt">"## WI Destroy Command Completed @ </span><span style="color: orangered;font-family: 'Lucida Console';font-size: 9pt">$ExecutionEndTime</span><span style="color: darkred;font-family: 'Lucida Console';font-size: 9pt"> ##"</span><span style="color: darkgray;font-family: 'Lucida Console';font-size: 9pt">|</span><span style="font-family: 'Lucida Console';font-size: 9pt"> <span style="color: blue">Out-File</span> <span style="color: orangered">$logfile</span> <span style="color: navy">-Append</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="font-family: 'Lucida Console';font-size: 9pt">&nbsp;</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: orangered;font-family: 'Lucida Console';font-size: 9pt">$TotalExecutionTime</span><span style="font-family: 'Lucida Console';font-size: 9pt"> <span style="color: darkgray">=</span> <span style="color: orangered">$ExecutionEndTime</span> <span style="color: darkgray">-</span> <span style="color: orangered">$ExecutionStartTime</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="font-family: 'Lucida Console';font-size: 9pt">&nbsp;</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: darkred;font-family: 'Lucida Console';font-size: 9pt">"Total Work Items Deleted: </span><span style="color: orangered;font-family: 'Lucida Console';font-size: 9pt">$WICount</span><span style="color: darkred;font-family: 'Lucida Console';font-size: 9pt">"</span><span style="font-family: 'Lucida Console';font-size: 9pt"><span>&nbsp;&nbsp; </span><span style="color: darkgray">|</span> <span style="color: blue">Out-File</span> <span style="color: orangered">$logfile</span> <span style="color: navy">-Append</span></span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="font-family: 'Lucida Console';font-size: 9pt">&nbsp;</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: darkred;font-family: 'Lucida Console';font-size: 9pt">" Total Execution Time: </span><span style="color: orangered;font-family: 'Lucida Console';font-size: 9pt">$TotalExecutionTime</span><span style="color: darkred;font-family: 'Lucida Console';font-size: 9pt">"</span><span style="font-family: 'Lucida Console';font-size: 9pt"><span>&nbsp; </span><span style="color: darkgray">|</span> <span style="color: blue">Out-File</span> <span style="color: orangered">$logfile</span> <span style="color: navy">-Append </span></span></p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="color: darkgreen;font-family: 'Lucida Console';font-size: 9pt">##End of script##</span></p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt">&nbsp;</p>
<p class="MsoNormal" style="background: white;line-height: normal;margin-bottom: 0pt"><span style="font-family: verdana,geneva;font-size: small"><strong><span style="text-decoration: underline"><span style="color: black">Other References:</span></span></strong></span></p>
<p class="MsoNormal"><span style="color: black;font-family: verdana,geneva;font-size: small">witadmin destroywi command details <span style="text-decoration: underline;background-color: #00ff00"><strong><a href="https://msdn.microsoft.com/en-us/library/dd236908.aspx"><span style="background-color: #00ff00"><span style="color: black;text-decoration: underline">here</span></span></a></strong></span></span></p>
<p class="MsoNormal"><span style="color: black;font-family: verdana,geneva;font-size: small">TFS permission references <span style="text-decoration: underline;background-color: #00ff00"><strong><span style="color: #3366ff;text-decoration: underline"><a href="https://msdn.microsoft.com/en-us/library/ms252587.aspx"><span style="color: #3366ff;text-decoration: underline;background-color: #00ff00"><span style="color: black;text-decoration: underline">here</span></span></a></span></strong></span></span></p>
<p class="MsoNormal">&nbsp;</p>
</div>]]></content:encoded>
    </item>
    <item>
      <title>TFS: Clone build definition via visual studio client</title>
      <link>https://docs.microsoft.com/archive/blogs/deepakkhare/tfs-clone-build-definition-via-visual-studio-client</link>
      <pubDate>Mon, 30 Mar 2015 17:57:00 GMT</pubDate>
      <dc:creator><![CDATA[Deepak Khare]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/deepakkhare/2015/03/30/tfs-clone-build-definition-via-visual-studio-client/</guid>
      <description><![CDATA[Cloning a build definition could be a very useful feature to save a lot of rework and time. Cloning...]]></description>
      <content:encoded><![CDATA[<span style="font-family: verdana,geneva;font-size: small">Cloning a build definition could be a very useful feature to save a lot of rework and time. Cloning build definition feature is available via Power tools (not available with default VS or Team explorer installation).</span>

<span style="font-family: verdana,geneva;font-size: small"> <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/64/88/1300.CloneBuildDefinition.jpg"><img width="310" height="201" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/64/88/1300.CloneBuildDefinition.jpg" border="0" /></a></span>

<span style="font-family: verdana,geneva;font-size: small">Power tools version should be installed based on the visual studio (VS) version installed on the client irrespective of the TFS version which you will be connecting to.</span>

<span style="font-family: verdana,geneva;font-size: small">For example if you have VS 2013 installed you need power tools 2013 but you may connect to TFS 2012/2010 from your client.</span>

<span style="font-family: verdana,geneva;font-size: small">You can install TFS power tools from here:</span>

<span style="font-family: verdana,geneva;font-size: small">Visual Studio/TFS 2015 Power tools: <a href="https://marketplace.visualstudio.com/items?itemName=TFSPowerToolsTeam.MicrosoftVisualStudioTeamFoundationServer2015Power">here</a></span>

<span style="font-family: verdana,geneva;font-size: small"><span>Visual Studio/TFS 2013 Power tools: <a href="https://visualstudiogallery.msdn.microsoft.com/f017b10c-02b4-4d6d-9845-58a06545627f">here</a></span></span>

<span style="font-family: verdana,geneva;font-size: small">Visual Studio/TFS 2012 Power tools: <a href="https://visualstudiogallery.msdn.microsoft.com/b1ef7eb2-e084-4cb8-9bc7-06c3bad9148f">here</a></span>

&nbsp;

<span style="line-height: 107%;font-family: verdana,geneva;font-size: small">During the power tools installation make sure to select (include) required features to use </span>

<span style="font-family: verdana,geneva;font-size: small"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/64/88/8666.PowerToolsInstallation.jpg"><img alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/64/88/8666.PowerToolsInstallation.jpg" border="0" /></a></span>]]></content:encoded>
    </item>
    <item>
      <title>Team Foundation Server Useful SQL Queries</title>
      <link>https://docs.microsoft.com/archive/blogs/deepakkhare/team-foundation-server-useful-sql-queries</link>
      <pubDate>Tue, 27 Jan 2015 16:58:00 GMT</pubDate>
      <dc:creator><![CDATA[Deepak Khare]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/deepakkhare/2015/01/27/team-foundation-server-useful-sql-queries/</guid>
      <description><![CDATA[Below mentoned TFS SQL queries could be helpful in investigations, gathering important information...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family: verdana,geneva;font-size: small">Below mentoned TFS SQL queries could be helpful in investigations, gathering important information from project collection database.</span></p>
<p><span style="font-family: verdana,geneva;font-size: small">Please note that some of the queries execution may impact TFS performance and it is not advised to make any changes via SQL backend.</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><strong>TFS Version:</strong> TFS 2012 or higher</span></p>
<p><span style="font-size: medium;text-decoration: underline"><strong><span style="color: black;line-height: 107%;font-family: verdana,geneva;text-decoration: underline">Top 10 Commands with highest average response time (in last 7 days)</span></strong></span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">USE&nbsp;</span>[Tfs_DefaultCollection]</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">SELECT </span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">TOP</span></span></span> 10 <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">Application</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span> Command, <span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">ROUND</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">SUM</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">CAST</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span>ExecutionTime <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">AS</span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">float</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">)/</span></span></span>1000000<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">)/</span></span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">SUM</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span>ExecutionCount<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">),</span></span></span>3<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">)</span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">AS</span></span></span> ResponseTimeInSeconds</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">FROM</span> tbl_Command <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">WITH </span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">NOLOCK</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">)</span></span></span></span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">WHERE&nbsp;</span>StartTime <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">&gt;</span></span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">DATEADD</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">DAY</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">-</span></span></span>7<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">GETUTCDATE</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">())</span></span></span></span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">GROUP&nbsp;</span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">BY</span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">Application</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span>Command</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">ORDER&nbsp;</span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">BY</span></span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">SUM</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">CAST</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span>ExecutionTime <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">AS</span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">float</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">)/</span></span></span>1000000<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">)/</span></span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">SUM</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span>ExecutionCount<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">)</span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">DESC</span></span></span></span></p>
<p>&nbsp;</p>
<p><span style="color: #000000;font-size: medium;text-decoration: underline"><strong><span style="font-family: verdana,geneva"><span style="text-decoration: underline"><span style="line-height: 107%">Number of files in a Team Project Collection</span> (TPC)</span></span></strong></span></p>
<p>&nbsp;<span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">USE&nbsp;</span>[Tfs_DefaultCollection]</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">SELECT</span> OwnerId<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">, </span></span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">COUNT</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(*)</span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">AS</span></span></span> Cnt<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">SUM</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span>FileLength<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">)</span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">as</span></span></span> filelengthSum<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">SUM</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span>CompressedLength<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">)</span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">AS</span></span></span> CompressedLengthSum</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">FROM</span> tbl_File <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">WITH </span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">NOLOCK</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">)</span></span></span></span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">WHERE</span> PartitionId<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">=</span></span></span>1</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">GROUP&nbsp;</span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">BY</span></span></span> ownerid</span></p>
<p>&nbsp;</p>
<p><span style="color: #000000;font-size: medium;text-decoration: underline"><strong><span style="font-family: verdana,geneva">Get list of failed Jobs (TFS interal scheduled jobs)</span></strong></span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="font-family: verdana,geneva"><span style="color: #0000ff">USE&nbsp;</span>[Tfs_DefaultCollection]</span></span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">SELECT&nbsp;&nbsp;</span> d<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>JobName<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span> q<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>QueueTime <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">as</span></span></span> NextRunTimeUTC<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,&nbsp;</span></span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">DATEDIFF</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">SECOND</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">GETUTCDATE</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(),</span></span></span> q<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>QueueTime<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">)</span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">AS</span></span></span> NextRun<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span></span></p>
<p><span style="font-family: verdana,geneva;font-size: small">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JobState<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span> ExecutionStartTime <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">as</span></span></span> ExecutionStartTimeUTC<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">, </span></span></span>StateChangeTime<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span> q<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>QueuedReasons<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span> q<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>QueueFlags<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span> shp<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>MachineName <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">as</span></span></span> AgentName<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span></span></p>
<p><span style="font-family: verdana,geneva;font-size: small">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shp<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>StartTime <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">as</span></span></span> AgentStartTimeUTC<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span>jh<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>ResultMessage</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">FROM&nbsp;&nbsp;&nbsp;&nbsp;</span> tbl_jobqueue q</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #999999">JOIN&nbsp;</span> tbl_JobDefinition d <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">ON</span></span></span> d<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>JobId<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">=</span></span></span>q<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>JobId</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #999999">JOIN&nbsp;</span> tbl_JobHistory jh <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">ON</span></span></span> JH<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>JobId <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">=</span></span></span> q<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>JobId</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #999999">LEFT&nbsp;</span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">JOIN</span></span></span> tbl_ServiceHostProcess shp <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">ON</span></span></span> q<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>AgentId<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">=</span></span></span>shp<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>ProcessId</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">WHERE&nbsp;</span>Result <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">&lt;&gt;</span></span></span> 0 <br /><span style="color: #0000ff">ORDER&nbsp;</span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">BY</span></span></span> jh<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>StartTime <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">DESC</span></span></span></span></p>
<p>&nbsp;</p>
<p><span style="font-size: medium;text-decoration: underline"><strong><span style="color: #000000;font-family: verdana,geneva;text-decoration: underline">Get List of Workspaces not accessed in last 90 days</span></strong></span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff"><span style="font-family: verdana,geneva"><span style="font-family: verdana,geneva"><span style="color: #0000ff">USE&nbsp;</span><span style="color: #000000">[Tfs_DefaultCollection]</span></span></span></span></span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">SELECT</span> COUNT(*)</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">FROM</span> tbl_Workspace ws <span style="color: #0000ff">WITH (NOLOCK)</span></span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #808080">JOIN</span> tbl_LocalVersion lv <span style="color: #0000ff">WITH (NOLOCK)</span></span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">ON</span> lv.WorkspaceId = ws.WorkspaceId</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">WHERE</span> ws.Type = 0 <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #000000">and ws.LastAccessDate &lt;</span> <span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">DATEADD</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">DAY</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">-90</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">GETUTCDATE</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">())</span></span></span></span></span></span></span></p>
<p>&nbsp;</p>
<p><span style="font-size: medium;text-decoration: underline"><strong><span style="line-height: 107%;font-family: verdana,geneva">Number of TFS Builds Executed in Last 7 Days</span></strong></span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff"><span style="font-family: verdana,geneva"><span style="color: #0000ff"><span style="font-family: verdana,geneva"><span style="font-family: verdana,geneva"><span style="color: #0000ff">USE&nbsp;</span><span style="color: #000000">[Tfs_DefaultCollection]</span></span></span></span></span></span></span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">SELECT&nbsp;&nbsp;</span>P<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>ProjectName<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span> BD<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>DefinitionName <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span>B<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>[BuildNumber] <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">, </span></span></span>B<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>[StartTime]<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span> B<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>[FinishTime] <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span> BQ<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>Quality <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span>B<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>[BuildStatus] <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span>B<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>[CompilationStatus] <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span>B<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>[TestStatus] <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span></span></p>
<p><span style="font-family: verdana,geneva;font-size: small">B<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>[LastChangedOn] <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span>B<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>[KeepForever] <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span>B<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>[BuildUri] <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span>B<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>[Reason]&nbsp;&nbsp; <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span>B<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>[Deleted] <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span>B<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>[DeletionStatus] <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span>B<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>[BuildId] <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span>B<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>[ContainerId]</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">FROM&nbsp;</span>[tbl_Build] B <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">WITH </span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">NOLOCK</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">)</span></span></span></span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #808080">LEFT </span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">OUTER</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">JOIN</span></span></span> tbl_BuildDefinition BD <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">WITH </span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">NOLOCK</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">) </span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">ON</span></span></span> B<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>DefinitionID <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">=</span></span></span> BD<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>DefinitionId</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #808080">LEFT&nbsp;</span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">OUTER</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">JOIN</span></span></span> tbl_BuildQuality BQ&nbsp; <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">WITH </span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">NOLOCK</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">) </span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">ON</span></span></span> BQ<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>QualityID <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">=</span></span></span> B<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>QualityId</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #808080">LEFT </span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">OUTER</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">JOIN</span></span></span> [tbl_BuildGroup] BG <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">WITH </span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">NOLOCK</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">) </span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">ON</span></span></span> BG<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>GroupId <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">=</span></span></span> BD<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>GroupID</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #808080">LEFT&nbsp;</span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">OUTER</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">JOIN</span></span></span> tbl_Project P <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">WITH </span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">NOLOCK</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">)</span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">ON</span></span></span> P<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>ProjectUri <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">=</span></span></span> BG<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>TeamProject</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">WHERE&nbsp;</span>B<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>PartitionId <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">=</span></span></span> 1 <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">AND</span></span></span> BD<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>PartitionId <span style="color: #808080"><span style="color: #808080"><span style="color: #808080">=</span></span></span> 1</span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #808080">AND&nbsp;<span style="color: #000000">B.[StartTime] &gt; </span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">DATEADD</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">DAY</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">-</span></span></span>7<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">,</span></span></span><span style="color: #ff00ff"><span style="color: #ff00ff"><span style="color: #ff00ff">GETUTCDATE</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">())</span></span></span></span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">ORDER&nbsp;</span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">BY</span></span></span> B<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>StartTime</span></p>
<p>&nbsp;</p>
<p><span style="color: #000000;font-size: medium;text-decoration: underline"><strong><span style="font-family: verdana,geneva">Get List of Application Tier Server(s):</span></strong></span></p>
<p><span style="font-family: verdana,geneva;font-size: small"><span style="color: #0000ff">SELECT&nbsp;</span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">* </span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">FROM</span></span></span> [Tfs_Configuration]<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>[dbo]<span style="color: #808080"><span style="color: #808080"><span style="color: #808080">.</span></span></span>[tbl_ServiceHostProcess] <span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">WITH </span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">(</span></span></span><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">NOLOCK</span></span></span><span style="color: #808080"><span style="color: #808080"><span style="color: #808080">)</span></span></span></span></p>]]></content:encoded>
    </item>
    <item>
      <title>Team Foundation Server Certification (70-496)</title>
      <link>https://docs.microsoft.com/archive/blogs/deepakkhare/team-foundation-server-certification-70-496</link>
      <pubDate>Thu, 04 Sep 2014 12:18:00 GMT</pubDate>
      <dc:creator><![CDATA[Deepak Khare]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/deepakkhare/2014/09/04/team-foundation-server-certification-70-496/</guid>
      <description><![CDATA[Administering Visual Studio Team Foundation Server Certification (70-496) is excellent way to get...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family: verdana,geneva;font-size: medium">Administering Visual Studio Team Foundation Server Certification (70-496) is excellent way to get in-depth knowledge of the product and is extremely helpful in TFS administration.</span></p>
<p><span style="font-family: verdana,geneva;font-size: medium">Sharing below resources which were extremely helpful in Clearing my certification exam. While these resources could be helpful in the exam there is no better way to read the information and practice on a test/non user impacting TFS instance.</span></p>
<p><span style="font-family: verdana,geneva;font-size: medium">Note: Information in this article is for reference purpose only, please go through entire content available online, in books to get extensive knowledge around each of the topic. </span></p>
<p>&nbsp;</p>
<p><span style="font-size: medium;text-decoration: underline"><strong><span style="font-family: verdana,geneva">What&rsquo;s in Exam?</span></strong></span></p>
<p><span style="font-family: verdana,geneva;font-size: medium">Per Microsoft site <a href="https://www.microsoft.com/learning/en-us/exam-70-496.aspx">https://www.microsoft.com/learning/en-us/exam-70-496.aspx</a>&nbsp;, exam is divided into four quadrants:</span></p>
<ol>
<li>
<p><span style="font-family: verdana,geneva;font-size: medium">Install and configure Team Foundation Server (TFS) (25‒30%)</span></p>
</li>
<li>
<p><span style="font-family: verdana,geneva;font-size: medium">Manage Team Foundation Server (25‒30%)</span></p>
</li>
<li>
<p><span style="font-family: verdana,geneva;font-size: medium">Customize Team Foundation Server for team use (20‒25%)</span></p>
</li>
<li>
<p><span style="font-family: verdana,geneva;font-size: medium">Administer version control (25‒30%)</span></p>
</li>
</ol>
<p>&nbsp;</p>
<p><span style="font-size: medium"><strong><span style="line-height: 107%;font-family: verdana,geneva">My notes for each of the topic: Please download attachment</span></strong></span></p>
<p>&nbsp;</p>
<p><span style="font-size: medium;text-decoration: underline"><strong><span style="line-height: 107%;font-family: verdana,geneva">Useful Resources:</span></strong></span></p>
<p><span style="font-family: verdana,geneva;font-size: medium">MSDN Link for Application Lifecycle Management overview using TFS :<a href="https://msdn.microsoft.com/en-us/library/fda2bad5(v=vs.110).aspx">https://msdn.microsoft.com/en-us/library/fda2bad5(v=vs.110).aspx</a></span></p>
<p><span style="font-family: verdana,geneva;font-size: medium"><span id="productTitle" class="a-size-large">Professional Team Foundation Server 2012: </span><a href="https://www.amazon.com/Professional-Team-Foundation-Server-2012/dp/1118314093">https://www.amazon.com/Professional-Team-Foundation-Server-2012/dp/1118314093</a></span></p>
<p><span style="font-family: verdana,geneva;font-size: medium">Awesome online training: <a href="https://www.microsoftvirtualacademy.com/training-courses/administering-visual-studio-tfs-2012-exam-496-jump-start">https://www.microsoftvirtualacademy.com/training-courses/administering-visual-studio-tfs-2012-exam-496-jump-start</a></span></p>
<p style="margin: 0in 0in 0pt"><span style="color: black;font-family: verdana,geneva;font-size: medium">TFS Installation Guide: <a href="https://www.microsoft.com/en-us/download/details.aspx?id=29035">https://www.microsoft.com/en-us/download/details.aspx?id=29035</a></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/55/51/65/TfsAdministrationCertification.pdf">TfsAdministrationCertification.pdf</a></p>]]></content:encoded>
    </item>
    <item>
      <title>PowerShell: Add/Remove multiple security groups on multiple windows servers</title>
      <link>https://docs.microsoft.com/archive/blogs/deepakkhare/powershell-addremove-multiple-security-groups-on-multiple-windows-servers</link>
      <pubDate>Mon, 12 May 2014 12:13:00 GMT</pubDate>
      <dc:creator><![CDATA[Deepak Khare]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/deepakkhare/2014/05/12/powershell-addremove-multiple-security-groups-on-multiple-windows-servers/</guid>
      <description><![CDATA[Add multiple security groups on multiple servers 
# This script will add multiple groups on...]]></description>
      <content:encoded><![CDATA[<h3><span style="font-family: trebuchet ms,geneva;"><strong>Add multiple security groups on multiple servers </strong></span></h3>
<p><span style="font-family: 'Trebuchet MS', sans-serif;"># This script will add multiple groups on multiple serevrs<br /> # Make sure you have one server in each row in the servers text file<br /> # you must have administrator access on the server</span><br /><br /><span style="font-family: 'Trebuchet MS', sans-serif;">$ServersList = "D:\ServersList.txt"<br /> $ServerNames = get-content $ServersList</span><br /><span style="font-family: 'Trebuchet MS', sans-serif;">$UserGroupFilePath = "D:\SecurityGroup.txt"<br /> $UserGroupList = get-content $UserGroupFilePath</span><br /><span style="font-family: 'Trebuchet MS', sans-serif;">$DomainName ="Enter your domain name here"</span><br /><br /><span style="font-family: 'Trebuchet MS', sans-serif;">foreach ($name in $ServerNames) <br /> &nbsp;&nbsp;&nbsp; {<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $localAdminGroup = [ADSI]("WinNT://$name/Administrators")</span><br /><span style="font-family: 'Trebuchet MS', sans-serif;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Add all the groups in text file to the current server</span><br /><span style="font-family: 'Trebuchet MS', sans-serif;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach ($UserGroupName in $UserGroupList)<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $AdminsG = [ADSI] "WinNT://$DomainName/$UserGroupName"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $localAdminGroup.Add($AdminsG.PSBase.Path)<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Write-Host "Adding" $AdminsG.PSBase.Path "to" $name<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } # End of User Group Loop</span><br /><span style="font-family: 'Trebuchet MS', sans-serif;">&nbsp;&nbsp;&nbsp; } # End of Server List Loop</span></p>
<p>&nbsp;</p>
<h3><strong><span style="font-family: 'Trebuchet MS', sans-serif;">Remove multiple security groups on multiple servers</span></strong></h3>
<p><span style="font-family: 'Trebuchet MS', sans-serif;"># This script will delete multiple security groups on multiple servers<br /># Make sure you have one server in each row in the servers text file<br /># you must have administrator access on the server<br />&nbsp;</span></p>
<p><span style="font-family: 'Trebuchet MS', sans-serif;">$ServersList = "D:\ServersList.txt"<br />$ServerNames = get-content $ServersList<br />$UserGroupFilePath = "D:\SecurityGroup.txt"<br />$UserGroupList = get-content $UserGroupFilePath<br />$DomainName ="Enter your domain name here"<br /> foreach ($name in $ServerNames) <br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $localAdminGroup = [ADSI]("WinNT://$name/Administrators")<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Add all the groups in text file to the current server<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach ($UserGroupName in $UserGroupList)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $AdminsG = [ADSI] "WinNT://$DomainName/$UserGroupName"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $localAdminGroup.remove($AdminsG.PSBase.Path)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Write-Host "remove" $AdminsG.PSBase.Path "to" $name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } # End of User Group Loop<br />&nbsp;&nbsp;&nbsp; } # End of Server List Loop</span></p>]]></content:encoded>
    </item>
    <item>
      <title>TFS Proxy - Unsung Hero</title>
      <link>https://docs.microsoft.com/archive/blogs/deepakkhare/tfs-proxy-unsung-hero</link>
      <pubDate>Tue, 06 May 2014 18:13:00 GMT</pubDate>
      <dc:creator><![CDATA[Deepak Khare]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/deepakkhare/2014/05/06/tfs-proxy-unsung-hero/</guid>
      <description><![CDATA[1. Overview
Source files download operations could be pretty resource expensive operations and...]]></description>
      <content:encoded><![CDATA[<h2><span style="font-family: verdana,geneva">1. Overview</span></h2>
<p><span style="font-family: verdana,geneva">Source files download operations could be pretty resource expensive operations and could impact overall TFS instance performance. </span><span style="font-family: verdana,geneva">A proper implementation of TFS proxy (for source code download operations) can help to increased TFS instance performance also reduce total time to complete the download operations. </span><span style="font-family: verdana,geneva">TFS proxy can also help to reduce total operational cost, increased TFS user&rsquo;s productivity by decreasing total download operation time.</span></p>
<p><span style="font-family: verdana,geneva">Our team provides support on software development tools to multiple groups within company. Some of the TFS implementations are the largest implementation of on-premises Team foundation servers.</span></p>
<p><span style="font-family: verdana,geneva">Total databases sizes on all the instances is 110+ TB.</span></p>
<p><span style="font-family: verdana,geneva"><strong><span style="text-decoration: underline">Some of the limitations which can severely impact TFS server performance:</span></strong></span></p>
<ol>
<li><span style="font-family: verdana,geneva">Large number/size files downloads from TFS server</span></li>
<li><span style="font-family: verdana,geneva">Location of TFS server, TFS proxy server</span></li>
<li><span style="font-family: verdana,geneva">Frequent cleanup of TFS proxy server content</span></li>
<li><span style="font-family: verdana,geneva">Users/automations not using correct proxy server name</span></li>
</ol>
<p><span style="font-family: verdana,geneva"><strong><span style="text-decoration: underline">Primary benefits of TFS proxy:</span></strong></span></p>
<ol>
<li><span style="font-family: verdana,geneva">Load on the main server is reduced; this is really the main benefit and the reasoning behind the recommendation for everyone to use proxies whether remote or not</span></li>
<li><span style="font-family: verdana,geneva">Performance is increased for users in remote sites, particularly for files that are retrieved multiple times or by more than one person</span></li>
</ol>
<p><span style="font-family: verdana,geneva">Introductory material on this feature can be found <a href="https://msdn.microsoft.com/en-us/library/vstudio/ee248710.aspx">here</a>.</span></p>
<p><span style="font-family: verdana,geneva">Below proposed architectures provides details around possible solutions to make sure that TFS proxies are used and also is maintainable without impacting end users.</span></p>
<h2><span style="font-family: verdana,geneva">2. Proxy server hardware Recommendations</span></h2>
<ol>
<li><span style="font-family: verdana,geneva">At-least one server in each region (like US, Europe, Singapore, India, China)</span></li>
<li><span style="font-family: verdana,geneva">Standard web server/file server SKU</span></li>
<li><span style="font-family: verdana,geneva">Data caching drive should be at-least 20-30% of total content, this will reduce possibility of frequent cleanup.</span></li>
<li><span style="font-family: verdana,geneva">You will need about 2 IOPS per file, per second - so, say 1K downloads per sec requires 2KIOPS - 20 spindles or a couple SSDs.</span></li>
</ol>
<h2><span style="font-family: verdana,geneva">3. Proxy Architecture</span></h2>
<p><span style="font-family: verdana,geneva">During the proxy setup evaluation phase we have considered following options;we have also done a&nbsp;proof of concept (POC) for all 4 options and based on the POC have documented advantages/disadvantages&nbsp;of each option to make an informed decision.</span></p>
<h3><span style="font-family: verdana,geneva">3.1. (Option#1) Proxy Setup Via GTM</span></h3>
<p><span style="font-family: verdana,geneva">Global Traffic Manager (GTM) is one of the standard ways to redirect traffic based on the client location.</span></p>
<p><span style="font-family: verdana,geneva">This architecture gives us advantage of being able&nbsp;to redirect the traffic based on the client and&nbsp;in the case of one server failure, the&nbsp;client can perform the Get operation from the nearest available other proxy.</span></p>
<p><span style="font-family: verdana,geneva">This architecture has other advantages,&nbsp;such as&nbsp;manageability and reliability. Recognizing that our team manages 750+ team project collections,&nbsp;when the proxy server name changes we do not have to make changes on all the team project collection, we just need to make changes on the virtual IP (VIP) level without affecting user&rsquo;s configuration/settings.&nbsp;<strong>&nbsp;</strong></span></p>
<h4><span style="font-family: verdana,geneva">3.1.1. Architecture</span></h4>
<p><span style="font-family: verdana,geneva">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/64/88/1018.Proxy3.1.1.JPG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/64/88/1018.Proxy3.1.1.JPG" alt="" border="0" /></a></span></p>
<h3><span style="font-family: verdana,geneva">3.1.2. Configuration on team project collection</span></h3>
<p><span style="font-family: verdana,geneva">This configuration is one time task.</span></p>
<p><span style="font-family: verdana,geneva">To register a proxy for a specific team project collection execute the&nbsp;following command</span></p>
<ol>
<li><span style="font-family: verdana,geneva">You must have TFS administrator permission to setup proxies on project collection.</span></li>
<li><span style="font-family: verdana,geneva">Open command prompt</span></li>
<li><span style="font-family: verdana,geneva">Change default directory to TF.exe location directory</span></li>
<li><span style="font-family: verdana,geneva">Execute below command</span></li>
</ol>
<p><span style="font-family: verdana,geneva">tf proxy /add &lt;&lt;ProxyGTMURL&gt;&gt; /default:global&nbsp; /collection:&lt;&lt;Collection URL&gt;&gt;</span></p>
<p><span style="font-family: verdana,geneva">Note: Replace &lt;&lt;&gt;&gt; text with appropriate values.</span></p>
<p><span style="font-family: verdana,geneva">tf proxy command &amp; Permission details are available <a href="https://msdn.microsoft.com/en-us/library/ee791981(v=vs.100).aspx">here</a>&nbsp;</span></p>
<h3><span style="font-family: verdana,geneva">3.1.3. User configuration</span></h3>
<ol>
<li><span style="font-family: verdana,geneva">Open command prompt</span></li>
<li><span style="font-family: verdana,geneva">Change default directory to TF.exe location directory</span></li>
<li><span style="font-family: verdana,geneva">Execute below command</span></li>
</ol>
<p><span style="font-family: verdana,geneva">tf proxy /configure /Collection:&lt;&lt;TeamProjectCollectionName&gt;&gt;&nbsp;</span></p>
<h3><span style="font-family: verdana,geneva">3.1.4. Advantages&nbsp;</span></h3>
<ol>
<li><span style="font-family: verdana,geneva">End user &amp; machines never have to update the proxy configure</span></li>
<li><span style="font-family: verdana,geneva">If the proxy servers (Name or physical server) changes there is no impact on the end-user</span></li>
<li><span style="font-family: verdana,geneva">If TFS admin decided to add new servers in the current architecture, we do not have to configure servers URL on 750+ TPC databases</span></li>
<li><span style="font-family: verdana,geneva">Manageability of the proxies&rsquo; setup is easy.&nbsp;</span></li>
</ol>
<h3><span style="font-family: verdana,geneva">3.1.5. Limitations/Disadvantages</span></h3>
<ol>
<li><span style="font-family: verdana,geneva">Virtual IP (VIP) &amp; GTM options may not be available in all geographical locations..<strong>&nbsp;</strong></span></li>
</ol>
<h3><span style="font-family: verdana,geneva">3.2. (Option#2) Proxy Setup Via AD site name</span></h3>
<p><span style="font-family: verdana,geneva">Proxy configuration via AD-Site name is another supported way to configure proxy for users in various locations.</span></p>
<p><span style="font-family: verdana,geneva">The advantage&nbsp;of this solution is that users don&rsquo;t have to explicitly configure a proxy for each user which increases the possibility of proxy usage more than in the current state. Since the&nbsp;majority of the Get operation will be served by the proxy&nbsp;it will&nbsp;reduce the load on the TFS instance and help to improve overall system performance.&nbsp;</span></p>
<h3><span style="font-family: verdana,geneva">3.2.1. Architecture</span></h3>
<p><span style="font-family: verdana,geneva">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/64/88/1234.Proxy3.1.2.JPG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/64/88/1234.Proxy3.1.2.JPG" alt="" border="0" /></a>&nbsp;</span></p>
<h3><span style="font-family: verdana,geneva">3.2.2. Configuration on team project collection</span></h3>
<p><span style="font-family: verdana,geneva">To register a proxy for a specific team project collection execute the&nbsp;following command</span></p>
<ol>
<li><span style="font-family: verdana,geneva">You must have TFS administrator permission to setup proxies on project collection.</span></li>
<li><span style="font-family: verdana,geneva">Open command prompt</span></li>
<li><span style="font-family: verdana,geneva">Change default directory to TF.exe location directory</span></li>
<li><span style="font-family: verdana,geneva">Execute below command</span></li>
</ol>
<p><span style="font-family: verdana,geneva">tf proxy /add &lt;&lt;ProxyURL&gt;&gt; /default:site /site:&lt;&lt;AD-SITE-NAME&gt;&gt; /collection:&lt;&lt;Collection URL&gt;&gt;</span></p>
<p><span style="font-family: verdana,geneva">Note: Replace &lt;&lt;&gt;&gt; text with appropriate values.</span></p>
<p><span style="font-family: verdana,geneva">Note: If you have multiple team project collection or site names you can script out the implementation to run the above mentioned commands for all team project collection.</span></p>
<h3><span style="font-family: verdana,geneva">3.2.3. User configuration</span></h3>
<ol>
<li><span style="font-family: verdana,geneva">Open command prompt</span></li>
<li><span style="font-family: verdana,geneva">Change default directory to TF.exe location directory</span></li>
<li><span style="font-family: verdana,geneva">Execute below command</span></li>
</ol>
<p><span style="font-family: verdana,geneva">tf proxy /configure /Collection:&lt;&lt;TeamProjectCollectionName&gt;&gt;&nbsp;</span></p>
<h3><span style="font-family: verdana,geneva">3.2.4. Advantages&nbsp;</span></h3>
<ol>
<li><span style="font-family: verdana,geneva">End user &amp; machines never have to update the proxy configure</span></li>
<li><span style="font-family: verdana,geneva">If the proxy server changes (rename or new)&nbsp;there is no impact on the end-user</span></li>
<li><span style="font-family: verdana,geneva">If TFS admin decided to add new servers in the current architecture, we do not have to configure servers URL on 750+ TPC databases</span></li>
<li><span style="font-family: verdana,geneva">Manageability of the proxies&rsquo; setup is easy.&nbsp;</span></li>
</ol>
<h3><span style="font-family: verdana,geneva">3.2.5. Limitations/Disadvantages</span></h3>
<ol>
<li><span style="font-family: verdana,geneva">In the case of a&nbsp;proxy server name change the change needs to be executed on 750+ TPC databases</span></li>
<li><span style="font-family: verdana,geneva">For the best use of the proxy functionality TFS admin should configure all possible site names from all users&rsquo; (across the world).</span></li>
<li><span style="font-family: verdana,geneva">Maintainability cost of this option is very high as the accuracy of the information is user dependent and Admins may not have visibility of new users/team additions on different locations.</span></li>
</ol>
<h3><span style="font-family: verdana,geneva">3.3. (Option#3) Hybrid setup with GTM &amp; AD site name</span></h3>
<p><span style="font-family: verdana,geneva">In the hybrid solution we are going to merge best of option #1 &amp; Option #2.</span></p>
<p><span style="font-family: verdana,geneva">For the locations where GTM is supported (Like Redmond, Dublin, Singapore) we will add the proxy name as GTM URL with AD-Site name.</span></p>
<p><span style="font-family: verdana,geneva">For the locations where GTM/VIP is not available we will use the&nbsp;server friendly name (alias name for server, can be created via DNS) and will add the&nbsp;TFS proxy using friendly name. In future if the server need to be replaced we just have to change the pointer (with new server IP) to replace the server. There will not be any configuration change for users.</span></p>
<h3><span style="font-family: verdana,geneva">3.3.1. Architecture</span></h3>
<p><span style="font-family: verdana,geneva">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/64/88/5125.Proxy3.3.1.JPG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/64/88/5125.Proxy3.3.1.JPG" alt="" border="0" /></a>&nbsp;</span></p>
<h3><span style="font-family: verdana,geneva">3.3.2. Configuration on team project collection</span></h3>
<p><span style="font-family: verdana,geneva">To register a proxy for a specific team project collection execute the&nbsp;following command</span></p>
<ol>
<li><span style="font-family: verdana,geneva">You must have TFS administrator permission to setup proxies on project collection.</span></li>
<li><span style="font-family: verdana,geneva">Open command prompt</span></li>
<li><span style="font-family: verdana,geneva">Change default directory to TF.exe location directory</span></li>
<li><span style="font-family: verdana,geneva">Execute below command</span></li>
</ol>
<p><span style="font-family: verdana,geneva">tf proxy /add &lt;&lt;ProxyURL&gt;&gt; /default:site /site:&lt;&lt;AD-SITE-NAME&gt;&gt; /collection:&lt;&lt;Collection URL&gt;&gt;</span></p>
<p><span style="font-family: verdana,geneva">Note: Replace &lt;&lt;&gt;&gt; text with appropriate values.</span></p>
<h3><span style="font-family: verdana,geneva">3.3.3. User configuration&nbsp;</span></h3>
<ol>
<li><span style="font-family: verdana,geneva">Open command prompt</span></li>
<li><span style="font-family: verdana,geneva">Change default directory to TF.exe location directory</span></li>
<li><span style="font-family: verdana,geneva">Execute below command</span></li>
</ol>
<p><span style="font-family: verdana,geneva">tf proxy /configure &nbsp;/Collection:&lt;&lt;TPCURL&gt;&gt;&nbsp;</span></p>
<h3><span style="font-family: verdana,geneva">3.3.4. How the setup works on client side</span></h3>
<ol>
<li><span style="font-family: verdana,geneva">TFS Client calls AD to get his site name.</span></li>
<li><span style="font-family: verdana,geneva">Client gets response from AD "Your site name is SITE-NAME."</span></li>
<li><span style="font-family: verdana,geneva">Client makes a call to TFS to check the configured proxy for SITE-NAME</span></li>
<li><span style="font-family: verdana,geneva">Client gets response from TFS with proxy URL for SITE-NAME</span></li>
<li><span style="font-family: verdana,geneva">Client usages the proxy URL for file download operations.&nbsp;</span></li>
</ol>
<h3><span style="font-family: verdana,geneva">3.3.5. Advantages&nbsp;</span></h3>
<ol>
<li><span style="font-family: verdana,geneva">End user &amp; machines never have to update the proxy configure</span></li>
<li><span style="font-family: verdana,geneva">If the proxy server changes (rename or new)&nbsp;there is no impact on the end-user</span></li>
<li><span style="font-family: verdana,geneva">If TFS admin decided to add new servers in the current architecture, we do not have to configure servers URL on 750+ TPC databases</span></li>
<li><span style="font-family: verdana,geneva">Manageability of the proxies&rsquo; setup is easy.</span></li>
</ol>
<h3><span style="font-family: verdana,geneva">3.3.6. Limitations/Disadvantages</span></h3>
<ol>
<li><span style="font-family: verdana,geneva">For the best use of the proxy functionality TFS admin have to configure all team project collections for all possible site names.</span></li>
</ol>
<p>&nbsp;</p>
<p><span style="font-family: verdana,geneva;font-size: small">Special thanks to R&eacute;mi Lemarchand and Philip Kelley for guidance and contribution.</span></p>
<p><span style="font-family: verdana,geneva"><strong>Disclaimer:</strong> Above information is provided based on proxy implementation done in my team, Users/TFS admins should test the scenarios for best possible options.</span></p>]]></content:encoded>
    </item>
  </channel>
</rss>