<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Adam Singer : Team Foundation Setup Admin &amp;amp; Ops</title><link>http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+Setup+Admin+_2600_amp_3B00_+Ops/default.aspx</link><description>Tags: Team Foundation Setup Admin &amp;amp; Ops</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Ventriloquism: TFS Style</title><link>http://blogs.msdn.com/adamsinger/archive/2008/07/28/ventriloquism-tfs-style.aspx</link><pubDate>Mon, 28 Jul 2008 18:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8784613</guid><dc:creator>Adam Singer</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/adamsinger/comments/8784613.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adamsinger/commentrss.aspx?PostID=8784613</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adamsinger/rsscomments.aspx?PostID=8784613</wfw:comment><description>&lt;P&gt;Quite a long time back, Buck posted about how to recover from the situation where one TFS machine is created as a clone from another. This can lead to clients still showing the project list for one server when the connect to the second. Based on a recent &lt;a href="http://forums.microsoft.com/MSDN/default.aspx?ForumGroupID=5&amp;SiteID=1"&gt;Visual Studio Team System forums&lt;/a&gt; question (they certainly seem to be inspirational to me these days), I decided to code up a very simple tool that connects to one or more TFS instances and spits out their GUIDs so you can check whether they were cloned from each other. The actual interesting block of code is as follows:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT color=#2b91af&gt;TeamFoundationServer&lt;/FONT&gt; tfs = &lt;FONT color=#0000ff&gt;new&lt;/FONT&gt; &lt;FONT color=#2b91af&gt;TeamFoundationServer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="courier new,courier"&gt;(arg);&lt;BR&gt;&lt;FONT color=#2b91af&gt;Console&lt;/FONT&gt;.WriteLine(&lt;FONT color=#a31515&gt;"The GUID for server '{0}' is:{1} {2}"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="courier new,courier"&gt;,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arg, &lt;FONT color=#2b91af&gt;Environment&lt;/FONT&gt;.NewLine, tfs.InstanceId);&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;As you can see, there isn't much to finding out the GUID of a server. I've attached the project in case you want to play around with it yourself. Nothing fancy- I even attempted to manually hack it back to a Visual Studio 2008 capable csproj file since I'm using a recent internal version of the next release. Enjoy!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8784613" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/adamsinger/attachment/8784613.ashx" length="3568" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+General/default.aspx">Team Foundation General</category><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+Setup+Admin+_2600_amp_3B00_+Ops/default.aspx">Team Foundation Setup Admin &amp;amp; Ops</category><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Coding+Practices/default.aspx">Coding Practices</category></item><item><title>Edifice Reqs II: The SQL</title><link>http://blogs.msdn.com/adamsinger/archive/2008/07/16/edifice-reqs-ii-the-sql.aspx</link><pubDate>Wed, 16 Jul 2008 16:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8712868</guid><dc:creator>Adam Singer</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/adamsinger/comments/8712868.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adamsinger/commentrss.aspx?PostID=8712868</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adamsinger/rsscomments.aspx?PostID=8712868</wfw:comment><description>&lt;P&gt;Back in March, I posted about the &lt;A class="" title="Edifice Reqs" href="http://blogs.msdn.com/adamsinger/archive/2008/03/07/edifice-reqs.aspx" mce_href="http://blogs.msdn.com/adamsinger/archive/2008/03/07/edifice-reqs.aspx"&gt;requirements&lt;/A&gt; for TFS installation. I promised to post about "SQL Server and it's Various Components", but have been tied up with the Visual Studio 2008 SP1 like a Thanksgiving turkey (only not quite as delicious).&lt;/P&gt;
&lt;P&gt;In any case, I'm back from outer space. I just blogged in to find you here... ahem. I'm getting side tracked with my song spoofs these days, apparently. &lt;EM&gt;&lt;FONT size=1&gt;Hey, they say blogs are supposed to be conversational, right?&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;SQL Server 2005 and SQL Server 2008 have quite a few subcomponents that Team Foundation Server requires. If you're installing TFS 2005, we require everything possible&amp;nbsp;to be installed, running, and set for automatic startup. In TFS 2008, we investigated this requirement and determined there were several of these components and restrictions we didn't need. Depending on your desired configuration, there are different components you must have installed.&lt;/P&gt;
&lt;P&gt;For all installs using SQL Server 2005, we require the SQL Database Engine ("SQL DB"), the SQL Analysis Services ("SQL AS"), and SQL Reporting Services ("SQL RS"). If all components are remote from the TFS Application Tier, you must install some SQL component on the AT so that we can use the SQL assemblies to talk with the remote components. The simplest way to achieve this is to install the "SQL Workstation Components". If you are using named instances of SQL DB, SQL AS, or SQL RS and don't want to use the port numbers to communicate with them, you should install the SQL Browser and set it to start up automatically. This will provide the hook TFS installation needs to find SQL components.&lt;/P&gt;
&lt;P&gt;If you're using SQL Server 2008, please note that it's still pre-release. For TFS 2008 RTM,&amp;nbsp;TFS was installable using the version of SQL Server 2008 that was available publicly at that time. TFS 2008 SP1 Beta is installable on the SQL Server 2008 February CTP (a.k.a. CTP6). &lt;A class="" title="Abdelhamid Abdou" href="http://blogs.msdn.com/aabdou/" mce_href="http://blogs.msdn.com/aabdou/"&gt;Abdelhamid&lt;/A&gt; has a great post you might want to check out &lt;A class="" title="TFS 2008 Beta 1" href="http://blogs.msdn.com/aabdou/archive/2008/05/13/team-foundation-server-sp1-beta-now-available.aspx" mce_href="http://blogs.msdn.com/aabdou/archive/2008/05/13/team-foundation-server-sp1-beta-now-available.aspx"&gt;here&lt;/A&gt;&amp;nbsp;that has the details on that score. For the TFS 2008 SP1 RTM release, we plan to support SQL Server 2008 RTM. At present, the components we require for SQL Server 2008 are the same as for SQL Server 2005. I don't anticipate that changing, but think it's important to add the qualifier in there just in case lightning strikes (twice)&amp;nbsp;an alligator that's&amp;nbsp;attacking a coin that landed on its edge.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8712868" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+General/default.aspx">Team Foundation General</category><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+Setup+Admin+_2600_amp_3B00_+Ops/default.aspx">Team Foundation Setup Admin &amp;amp; Ops</category></item><item><title>My service is packed, I'm ready to go</title><link>http://blogs.msdn.com/adamsinger/archive/2008/07/09/my-service-is-packed-i-m-ready-to-go.aspx</link><pubDate>Wed, 09 Jul 2008 19:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8712793</guid><dc:creator>Adam Singer</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/adamsinger/comments/8712793.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adamsinger/commentrss.aspx?PostID=8712793</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adamsinger/rsscomments.aspx?PostID=8712793</wfw:comment><description>&lt;P&gt;&lt;EM&gt;...installing here, upgrade once more&lt;BR&gt;(Adapted from "Leaving on a Jet Plane")&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;A post on the &lt;a href="http://forums.microsoft.com/MSDN/default.aspx?ForumGroupID=5&amp;SiteID=1"&gt;Visual Studio Team System forums&lt;/a&gt; reminded me of one very important tidbit of Visual Studio patching. The integration of Team Foundation Server with Visual Studio enables all sorts of marvelous functionality and is great for development, but does place some restrictions on what patching scenarios are supported.&lt;/P&gt;
&lt;P&gt;In particular, all Visual Studio derived products on the same machine &lt;STRONG&gt;&lt;FONT color=#cc0000&gt;must&lt;/FONT&gt;&lt;/STRONG&gt; have the same service pack level. This includes Visual Studio Express SKUs, Visual Studio Standard, Professional, Team System (and the individual role SKUs), Team Foundation Server's Application Tier, Data Tier (only exists in&amp;nbsp;TFS 2005), Team Build, Proxy, and Team Explorer. Since these components share common assemblies, if one tool has been upgraded to SP1 while another is still at RTM the functionality is undefined and unsupported.&lt;/P&gt;
&lt;P&gt;The easiest way to check your SP level is look in the control panel Add/Remove Programs (on XP/Server 2003) or Programs and Features&amp;nbsp;(on Vista/Sever 2008). For the former, check the "Show updates" button. On the latter, click the "View installed updates" link. There, you should be able to see which components have been updated and which haven't. If there's a mismatch, my recommendation is to reapply the Visual Studio and TFS service packs to bring everything back up to the latest SP. Of course, you can also uninstall the SP from everywhere that it's installed, but I would hope you'd want to get the latest and greatest functionality!&lt;/P&gt;
&lt;P&gt;Best of luck, folks, and feel free to shoot along questions and comments if there's any other topics you want to see me address.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8712793" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+General/default.aspx">Team Foundation General</category><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+Setup+Admin+_2600_amp_3B00_+Ops/default.aspx">Team Foundation Setup Admin &amp;amp; Ops</category></item><item><title>Edifice Reqs</title><link>http://blogs.msdn.com/adamsinger/archive/2008/03/07/edifice-reqs.aspx</link><pubDate>Fri, 07 Mar 2008 18:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8099763</guid><dc:creator>Adam Singer</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/adamsinger/comments/8099763.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adamsinger/commentrss.aspx?PostID=8099763</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adamsinger/rsscomments.aspx?PostID=8099763</wfw:comment><description>&lt;P&gt;&lt;EM&gt;I'd like to tip my hat to the father of a guy I worked with as a camp counselor one summer long ago for the post title. He owned a demolition company called "&lt;A class="" title="Edifice Wrecks" href="http://edificewrecks.com/" mce_href="http://edificewrecks.com/"&gt;Edifice Wrecks&lt;/A&gt;".&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;In our &lt;A class="" title="Pre[ranasaurus] Reqs" href="http://blogs.msdn.com/adamsinger/archive/2008/03/04/pre-ranasaurus-reqs-the-osic-era.aspx" mce_href="http://blogs.msdn.com/adamsinger/archive/2008/03/04/pre-ranasaurus-reqs-the-osic-era.aspx"&gt;last episode&lt;/A&gt;, I described the OSes that the various Team Foundation features support. This time, I'd like to cover what other software components you need to install, and how you can best do so. As before, I'll be making copious references to the &lt;A class="" title="Team Foundation Install Guide" href="http://go.microsoft.com/fwlink/?linkid=79226" mce_href="http://go.microsoft.com/fwlink/?linkid=79226"&gt;Team Foundation Install Guide&lt;/A&gt;&amp;nbsp;so I recommend you download it to play along at home.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Application Tier and Proxy: Both of these components require IIS 6 with ASP.NET, or, if you're on Longhorn Server, IIS 7 must have IIS 6 Compatibility, ASP.NET, HTTP Redirection, and Windows Authentication&amp;nbsp;installed. I usually install it through Add/Remove Programs (Windows Server 2003) or Server Manager (Longhorn Server). Specific instructions for each OS can be found on the install pages "&lt;SPAN id=nsrTitle&gt;How to: Install Internet Information Services 6.0 on Windows Server 2003" and "&lt;SPAN id=nsrTitle&gt;How to: Install Internet Information Services 7.0 on Windows Server 2008".&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;The Application Tier also requires SQL Server. You can use either SQL Server 2005 or certain versions of SQL Server 2008. Since the latter still hasn't released yet and changes in CTPs have broken TFS functionality, I strongly recommend using SQL Server 2005 SP1 or SP2 for production installs of TFS. There are separate instruction pages for each of SQL Server 2005 and SQL Server 2008 on Windows 2003 and Longhorn Server, so I won't list them all out here. They're children of the "Prerequisites for Team Foundation Server" topic in your install guide. To sum the up, though, I'll say the following. You need the&amp;nbsp;SQL Database Engine, Analysis Services, and Reporting Services. Workstation components are very useful for troubleshooting, so I'd recommend them as well. If you want to mix and match instances, things get a little bit harrier- I'll address that in a separate post. Besides that, the simplest install is to take the defaults for SQL Server 2005, using either Local System or a domain account as your SQL service account. &lt;STRONG&gt;Note&lt;/STRONG&gt;- this is not the Reporting Service account, but rather the SQL Database engine account. Reporting Services should be run as Network Service, and using the selection "Install the default configuration" on the Reporting Services options page will do this for you.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;The Application Tier requires SharePoint, as well. If you don't yet have an install of SharePoint on your corporate network, the simplest path is to just let the AT install and configure SharePoint for you. If you want to install SharePoint on a machine other than you TFS Application Tier, however, you should very, very carefully read and follow the page "&lt;SPAN id=nsrTitle&gt;How to: Install SharePoint Products and Technologies on Windows Server". Make sure to follow the steps all the way through to configure the SharePoint sites. One thing I will add to the install guide is that if you want to extend the existing site on port 80 instead of creating a new one you &lt;STRONG&gt;must&lt;/STRONG&gt; set the "Description" to the existing&amp;nbsp;web site name (e.g. "Default Web Site") in step 17. If you don't do so, it will disable the existing site and create a new one with just SharePoint components.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;Team Build: Team Build as a server doesn't have any particular prerequisites. However, in order for it to be able to&amp;nbsp;run coverage analysis, or run tests&amp;nbsp;you must install the appropriate SKU. For running tests, you need Visual Studio Team Edition for Testers or Visual Studio Team Suite. For coverage analysis, you need Visual Studio Team Edition for Developers or Visual Studio Team Suite.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;Team Explorer doesn't have any other software prerequisites. It installs all the necessary Visual Studio shell components to host itself and stand on its own.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;SharePoint Extensions: The only prerequisite for our SharePoint Extenstions feature is that SharePoint be installed. As I mentioned in my previous post, we currently only support 32-bit SharePoint installed, but are actively working on a power tool for 64-bit.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;Team System Web Access: The &lt;A class="" title="Prerequisite Software Installations (Team System Web Access)" href="http://msdn2.microsoft.com/en-us/library/bb822152.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/bb822152.aspx"&gt;system requirements&lt;/A&gt; documentation for TSWA is currently online, but not in the TFS Install guide. You need to install IIS 6.0 or 7.0&amp;nbsp;with ASP.NET, the .NET 2.0 Framework, and Team Explorer.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Next, we'll take a closer look at SQL Server and its various components (that sounds like a rock band, doesn't it, Dave Barry?). See&amp;nbsp;you then!&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8099763" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+General/default.aspx">Team Foundation General</category><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+Setup+Admin+_2600_amp_3B00_+Ops/default.aspx">Team Foundation Setup Admin &amp;amp; Ops</category></item><item><title>Pre[ranasaurus] Reqs: The OSic Era</title><link>http://blogs.msdn.com/adamsinger/archive/2008/03/04/pre-ranasaurus-reqs-the-osic-era.aspx</link><pubDate>Tue, 04 Mar 2008 21:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8032117</guid><dc:creator>Adam Singer</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/adamsinger/comments/8032117.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adamsinger/commentrss.aspx?PostID=8032117</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adamsinger/rsscomments.aspx?PostID=8032117</wfw:comment><description>&lt;P&gt;I've seen a bunch of questions over time about what it takes to get Team Foundation Server (TFS)&amp;nbsp;components installed. Because it varies by component, the answer is usually rather lengthy and takes long enough to fully describe that eyes start glazing over, heads start nodding, and the utility of the information is basically reduces to&amp;nbsp;a (very) small hill of beans. So, over the next few posts I'll review specific prerequisites (a.k.a. "prereqs" to their friends) for the TFS components. I'll be refering to the &lt;A class="" title="Team Foundation Install Guide" href="http://go.microsoft.com/fwlink/?linkid=79226" mce_href="http://go.microsoft.com/fwlink/?linkid=79226"&gt;Team Foundation Install Guide&lt;/A&gt; left, right, top, bottom, and center (possibly front and back, too, but don't hold your breath), so I recommend you download it so you can play along at home. Also, it's pretty useful in its own right.&lt;/P&gt;
&lt;P&gt;Today, we start with the all important operating system. I'm going to gloss over the hardware requirements since they're all listed on the pages I reference. If you're interested, feel free to read up on it at the source. Each TFS component has its own specifications for what it can and cannot be installed over, so we'll break them down by categories:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Application Tier and Proxy: These two SKUs can only be install on 32-bit OSes in the VS2008 release. In addition, they require a "server" OS - Windows Server 2003 or Longhorn Server. For Windows Server 2003, we require at least SP1. All 2003 Editions other than the Web Edition are supported. For a complete list, check out the "&lt;SPAN id=nsrTitle&gt;System Requirements for Team Foundation Server" section of your install guide. The Proxy page ("&lt;SPAN id=nsrTitle&gt;System Requirements for Team Foundation Server Proxy&lt;/SPAN&gt;") starts out by saying "The software requirements for Team Foundation Server&amp;nbsp;Proxy are the same as for&amp;nbsp;Team Foundation Server" so you can just look at the first page to get the list of OSes you can play with.&lt;BR&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Team Build is a different story. It can be installed on 32- or 64-bit systems. On the latter, it will run in WOW64 mod since it's actually a 32-bit application. The install guide page doesn't give you an exhaustive list, but rather refers to the &lt;A class="" title="Visual Studio 2008 Readme" href="http://download.microsoft.com/download/9/a/e/9ae0f6cc-7032-408e-9ca7-989f9e4af4ec/VS2008Readme.htm" mce_href="http://download.microsoft.com/download/9/a/e/9ae0f6cc-7032-408e-9ca7-989f9e4af4ec/VS2008Readme.htm"&gt;Visual Studio 2008 Readme&lt;/A&gt;&amp;nbsp;with some modifications. As with the Application Tier and Proxy, we require&amp;nbsp;at least SP1 or R2&amp;nbsp;on Windows Server 2003 and only support Standard and Enterprise Edition. On XP, we require at least SP2 and it must be Professional. For Vista, we support Home Premium, Business, Enterprise, or Ultimate Edition. They don't mention Longhorn Server on the "&lt;SPAN id=nsrTitle&gt;System Requirements for Team Foundation Build" Install guide page, but I can't imagine why it wouldn't be supported. I'll find out about that.&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;Team Explorer also references the Visual Studio requirements, but doesn't specify any exceptions like Team Build has. As with Team Build, it will run in WOW64 mode if installed on a 64-bit OS. See the "&lt;SPAN id=nsrTitle&gt;System Requirements and Additional Client Software for Team Explorer" page for more detail.&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;TFS Databases can be installed on a 64-bit machine only if you use the "dual server" deployment where the Application Tier resides on a different machine from the SQL instance with the TFS databases. In addition to the OSes listed in the Application Tier's requirements page, you can find the 64-bit OSes the databases supports on&amp;nbsp;the page titled&amp;nbsp;"&lt;SPAN id=nsrTitle&gt;64-Bit Support in Team Foundation".&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;Remote SharePoint: If you choose not to install SharePoint on your Application Tier, it can be installed on any OS supported by SharePoint, with some caveats. Currently, our TFS "SharePoint Extensions" SKU doesn't like 64-bit OSes. As &lt;A class="" title="Jason Barile" href="http://blogs.msdn.com/jasonba/" mce_href="http://blogs.msdn.com/jasonba/"&gt;Jason&lt;/A&gt; mentioned, we're &lt;A class="" href="http://blogs.msdn.com/jasonba/archive/2008/02/26/tfs-forum-activity-and-community-participation-on-the-rise.aspx" mce_href="http://blogs.msdn.com/jasonba/archive/2008/02/26/tfs-forum-activity-and-community-participation-on-the-rise.aspx"&gt;working on a Power Tool&lt;/A&gt; to rectify that and will post more when it's available. Otherwise, for 32-bit OSes, see the Install Guide page "&lt;SPAN id=nsrTitle&gt;How to: Install Windows SharePoint Services Extensions for Team Foundation Server" on how to upload the appropriate templates and redirectors to make SharePoint and Team Foundation Server friends.&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;Team System Web Access: According to the &lt;A class="" title="Team System Web Access download" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2105C9EE-565E-47B9-A5AC-9A8FF8A07862&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2105C9EE-565E-47B9-A5AC-9A8FF8A07862&amp;amp;displaylang=en"&gt;Power Tool download&lt;/A&gt; page, TSWA only supports Windows Server 2003. As TSWA is incorporated into the main line components for the next version I'm sure we'll see more information on its support.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;I hope there aren't too many nodding heads and glazed eyes- it's very tough to condense all of this down, especially when you enjoy words as much as I do. Next time we'll investigate what other software must be installed prior to TFS. Stay tuned!&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8032117" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+General/default.aspx">Team Foundation General</category><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+Setup+Admin+_2600_amp_3B00_+Ops/default.aspx">Team Foundation Setup Admin &amp;amp; Ops</category></item><item><title>License to Nil</title><link>http://blogs.msdn.com/adamsinger/archive/2008/02/09/license-to-nil.aspx</link><pubDate>Sun, 10 Feb 2008 07:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7576922</guid><dc:creator>Adam Singer</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/adamsinger/comments/7576922.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adamsinger/commentrss.aspx?PostID=7576922</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adamsinger/rsscomments.aspx?PostID=7576922</wfw:comment><description>&lt;P&gt;As a follow up to my explication on the various &lt;A class="" href="http://blogs.msdn.com/adamsinger/archive/2008/02/05/supercalifragilisticexpialidociou-dition.aspx" mce_href="http://blogs.msdn.com/adamsinger/archive/2008/02/05/supercalifragilisticexpialidociou-dition.aspx"&gt;TFS Editions&lt;/A&gt; and a few thread I saw on the &lt;a href="http://forums.microsoft.com/MSDN/default.aspx?ForumGroupID=5&amp;SiteID=1"&gt;Visual Studio Team System forums&lt;/a&gt; (including &lt;A class="" href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2819709&amp;amp;SiteID=1&amp;amp;mode=1" mce_href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2819709&amp;amp;SiteID=1&amp;amp;mode=1"&gt;Upgrading TFS 2008 Workgroup to Std. Edition - then TF50626&lt;/A&gt;), I'd like to point out something about the upgrade from Workgroup Edition to Full Edition.&lt;/P&gt;
&lt;P&gt;When you're running Workgroup Edition, users need to be added to the Team Foundation Licensed Users group in order to connect to the server. However, the Full Edition doesn't have this restriction and in fact doesn't use the Licensed Users group to limit server access. What confused folks it that the upgrade doesn't remove the group. In fact, due to the way our group membership logic was coded the group still has a maximum membership of 5 users!&lt;/P&gt;
&lt;P&gt;The best way to make sure that your upgrade succeeded is to actually remove a user from the Licensed Users group, add that user to a different TFS security group, and make sure the user can still connect to the server. If that works, you should be able to&amp;nbsp;just ignore the Licensed Users group.&lt;/P&gt;
&lt;P&gt;I'll follow up with my team to see if we can get this group removed on upgrade to help avoid confusion in the future.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7576922" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+Setup+Admin+_2600_amp_3B00_+Ops/default.aspx">Team Foundation Setup Admin &amp;amp; Ops</category></item><item><title>Supercalifragilisticexpialidociou-dition</title><link>http://blogs.msdn.com/adamsinger/archive/2008/02/05/supercalifragilisticexpialidociou-dition.aspx</link><pubDate>Tue, 05 Feb 2008 23:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7474915</guid><dc:creator>Adam Singer</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/adamsinger/comments/7474915.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adamsinger/commentrss.aspx?PostID=7474915</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adamsinger/rsscomments.aspx?PostID=7474915</wfw:comment><description>&lt;P&gt;With Team Foundation 2008 generally available, I've seen a bit of confusion over the various Editions offered. Of course, there's still a bit of confusion over how "&lt;A class="" href="http://blogs.msdn.com/adamsinger/archive/2006/09/22/766187.aspx" mce_href="http://blogs.msdn.com/adamsinger/archive/2006/09/22/766187.aspx"&gt;Workgroup Edition&lt;/A&gt;" relates to workgroup networks, but there's also some missing clarity around the upgrade paths, the restrictions, etc. Hopefully this simple guide will help make the Edition story a little less obtuse.&lt;/P&gt;
&lt;P&gt;Believe it or not, we have four Editions, or so they tell me.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Trial Edition&lt;/LI&gt;
&lt;LI&gt;Workgroup Edition&lt;/LI&gt;
&lt;LI&gt;Retail Edition&lt;/LI&gt;
&lt;LI&gt;Volume License Edition&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;For all intents and purposes, 3 and 4 are the same. The only difference is how you obtained them, and whether you have to fill in the PID yourself or if it's already filled in. Both are fully functional and should have no timebomb or user limit restrictions.&lt;/P&gt;
&lt;P&gt;The Trial Edition has a 90 day timebomb, but is otherwise fully functional.&lt;/P&gt;
&lt;P&gt;The Workgroup Edition has nothing to do with domain versus workgroup network deployments. Rather, it's a version you get with an MSDN subscription that has a five user limit. It's my understanding that it&amp;nbsp;may only be installed in a "single server" configuration.&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://msdn2.microsoft.com/en-gb/library/ms404844.aspx" mce_href="http://msdn2.microsoft.com/en-gb/library/ms404844.aspx"&gt;Supported upgrade paths&lt;/A&gt; are from Trial to Workgroup, Trial to Retail or Volume License, and from Workgroup to Retail or Volume License. Brian Harry has a great post on &lt;A class="" href="http://blogs.msdn.com/bharry/archive/2008/01/15/how-to-i-upgrade-to-a-proper-version-of-tfs-2008.aspx" mce_href="http://blogs.msdn.com/bharry/archive/2008/01/15/how-to-i-upgrade-to-a-proper-version-of-tfs-2008.aspx"&gt;how to upgrade&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;I hope that helps- if not, let me know and I'll see what other information I can dig up!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7474915" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+General/default.aspx">Team Foundation General</category><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+Setup+Admin+_2600_amp_3B00_+Ops/default.aspx">Team Foundation Setup Admin &amp;amp; Ops</category></item><item><title>Absence makes the install grow fonder</title><link>http://blogs.msdn.com/adamsinger/archive/2007/08/16/absence-makes-the-install-grow-fonder.aspx</link><pubDate>Thu, 16 Aug 2007 18:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4416719</guid><dc:creator>Adam Singer</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/adamsinger/comments/4416719.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adamsinger/commentrss.aspx?PostID=4416719</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adamsinger/rsscomments.aspx?PostID=4416719</wfw:comment><description>&lt;P&gt;As I mentioned in a previous post, our program manager &lt;A class="" href="http://blogs.msdn.com/sudhir/" mce_href="http://blogs.msdn.com/sudhir/"&gt;Sudhir&lt;/A&gt;&amp;nbsp;is blogging up a storm on all the great new features in Orcas, including remote Analysis Services and Sharepoint. You can also use pre-installed and configured Sharepoint instances, if your company already has one set up. &lt;A class="" href="http://blogs.msdn.com/bharry" mce_href="http://blogs.msdn.com/bharry"&gt;Brian Harry&lt;/A&gt;&amp;nbsp;recently posted the &lt;A class="" href="http://blogs.msdn.com/bharry/archive/2007/08/08/final-tfs-2008-feature-list.aspx" mce_href="http://blogs.msdn.com/bharry/archive/2007/08/08/final-tfs-2008-feature-list.aspx"&gt;final TFS 2008 feature list&lt;/A&gt;, and I'm very pleased to say that you can also use a remote Reporting Services instance in the final version! Note that this was not available in time for Beta2, unfortunately.&amp;nbsp;We still need to have some SQL assemblies on the application tier during setup so we can use the API, but that can be acheived by just installing the workstation components.&lt;/P&gt;
&lt;P&gt;Having played around with remote capabilities a bit, I must say that I'm really pleased with the update. I've seen many requests for it on the forums and so believe you'll be pleased with it as well. In any case, I wanted to let you know a bit about how to set up our install to use a&amp;nbsp;remote SQL Server Reporting Services (SSRS). It's very similar to our &lt;A class="" href="http://blogs.msdn.com/sudhir/archive/2007/05/30/analysis-services-flexibility.aspx" mce_href="http://blogs.msdn.com/sudhir/archive/2007/05/30/analysis-services-flexibility.aspx"&gt;Analysis Services Flexibility&lt;/A&gt;. You'll have to copy the installation folder onto a local disk from the media where you can edit the msiproperty.ini file.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Open the MSIProperty.ini file located under InstallMedia\AT directory 
&lt;LI&gt;Change VSTF_RS_SERVER property to indicate the machine that the Reporting Services resides on.&lt;/LI&gt;
&lt;LI&gt;If you Report Manager&amp;nbsp;virtual direrctory is located&amp;nbsp;at a different path than the default&amp;nbsp;&lt;A href="http://[reportserver]/Reports"&gt;http://[reportserver]/Reports&lt;/A&gt;, set the VSTF_RS_REPORTS_URI to point to the correct location.&lt;/LI&gt;
&lt;LI&gt;If your Report Server virtual directory is located at a path than the default &lt;A href="http://[reportserver]/ReportServer"&gt;http://[reportserver]/ReportServer&lt;/A&gt;, set the VSTF_RS_REPORTSERVER_URI to point to the correct location.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Note that you may have to open some firewall ports on the remote SSRS machine for our installation to complete successfully.&lt;/P&gt;
&lt;P&gt;Happy installing, and please do let me know what your experiences are with remote components, good, bad, or ugly!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4416719" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+Setup+Admin+_2600_amp_3B00_+Ops/default.aspx">Team Foundation Setup Admin &amp;amp; Ops</category></item><item><title>Great news!</title><link>http://blogs.msdn.com/adamsinger/archive/2007/07/31/great-news.aspx</link><pubDate>Tue, 31 Jul 2007 16:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4148772</guid><dc:creator>Adam Singer</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/adamsinger/comments/4148772.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adamsinger/commentrss.aspx?PostID=4148772</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adamsinger/rsscomments.aspx?PostID=4148772</wfw:comment><description>&lt;P&gt;I'm still alive! Yes, I know you all agree that's great news. At least, I think it's great news so will classify it as such here&amp;nbsp;in my blog.&lt;/P&gt;
&lt;P&gt;First, a bit of business:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Come chat with the Visual Studio Team System product team – This Wednesday&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Join members of the Visual Studio Team System product group to discuss features available in Visual Studio Team Foundation Server, Architecture Edition, Development Edition, Database Edition, and Test Edition. In addition, discuss what's new in &lt;A href="http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx"&gt;&lt;FONT color=#0000ff&gt;Beta 2&lt;/FONT&gt;&lt;/A&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;We will be holding two sessions:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Join the &lt;A href="http://msdn.microsoft.com/chats"&gt;&lt;FONT color=#0000ff&gt;chat&lt;/FONT&gt;&lt;/A&gt; on Wednesday, August 1&lt;SUP&gt;st&lt;/SUP&gt;, 2007 from 10:00am - 11:00am Pacific Time. &lt;A href="http://www.microsoft.com/communities/chats/vcs/07_0801_msdn_vsts.ics"&gt;&lt;FONT color=#0000ff&gt;Add to Calendar&lt;/FONT&gt;&lt;/A&gt; | &lt;A href="http://www.timeanddate.com/worldclock/fixedtime.html?year=2007&amp;amp;month=08&amp;amp;day=01&amp;amp;hour=10&amp;amp;min=0&amp;amp;sec=0&amp;amp;p1=234"&gt;&lt;FONT color=#0000ff&gt;Additional Time Zones&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 12pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -or-&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Join the &lt;A href="http://msdn.microsoft.com/chats"&gt;&lt;FONT color=#0000ff&gt;chat&lt;/FONT&gt;&lt;/A&gt; on Wednesday, August 1&lt;SUP&gt;st&lt;/SUP&gt;, 2007 from 4:00pm - 5:00pm Pacific Time. &lt;A href="http://www.microsoft.com/communities/chats/vcs/07_0801_msdn_vsts2.ics"&gt;&lt;FONT color=#0000ff&gt;Add to Calendar&lt;/FONT&gt;&lt;/A&gt; | &lt;A href="http://www.timeanddate.com/worldclock/fixedtime.html?year=2007&amp;amp;month=08&amp;amp;day=01&amp;amp;hour=16amp;min=0&amp;amp;sec=0&amp;amp;p1=234"&gt;&lt;FONT color=#0000ff&gt;Additional Time Zones&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Now for something on a more specific and on-the-front-lines style.&lt;/P&gt;
&lt;P&gt;Orcas Beta 2 has been out for awhile now, and with it a lovely improvement that I think will make Team Foundation administrators jump for joy, throwing confetti and streamers all the way. Hey, it's still my blog and I can imagine what I want to.&lt;/P&gt;
&lt;P&gt;In Whidbey, syncing users from Active Directory to TFS happened due to three conditions &lt;A class="" title="Get your users for nothin' and your sync for free" href="http://blogs.msdn.com/adamsinger/archive/2006/11/10/get-your-users-for-nothin-and-your-sync-for-free.aspx" mce_href="http://blogs.msdn.com/adamsinger/archive/2006/11/10/get-your-users-for-nothin-and-your-sync-for-free.aspx"&gt;but really only two conditions&lt;/A&gt;. This was fixed in Orcas as part of the &lt;A class="" title="Living Large" href="http://blogs.msdn.com/adamsinger/archive/2007/01/08/living-large.aspx" mce_href="http://blogs.msdn.com/adamsinger/archive/2007/01/08/living-large.aspx"&gt;Sync Large Groups&lt;/A&gt; feature crew. As such, you can now take advantage of the ability to modify the periodic AD/GSS sync period. To do so, you need to manually modify a Web.config file on the Application Tier that by deafult will appear under the folder "%PROGRAMFILES%\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\services". DISCLAIMER: I do not guarrantee that this will not cause your computer to eat all of the data it has ever come into contact with, possible with fire. This confers no warranties and no rights, your mileage may vary, use at&amp;nbsp; your own risk, void where prohibited, etc. [Note: still my blog].&lt;/P&gt;
&lt;P&gt;You'll need to add the following two lines to the key/value pair section at the top of this file, followed by resetting IIS to make sure our application pool picks up the changes:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;lt;add key="IdentityUpdatePeriod" value="01:00:00" /&amp;gt;&lt;BR&gt;&amp;lt;add key="IdentityUpdateInitial" value="01:00:00" /&amp;gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;Note that I've set both the initial update (i.e. the delay after startup that the first periodic sync happens) and the delay between periodic syncs to 1 hour. You can increase this to multiple hours, or decrease it to a matter of minutes. Be very careful when reducing the time as forcing the sync to happen too frequently will likely decrease the overall performance/throughput of your Team Foundation Server due to the multiple connections to your domain controllers that a sync opens as well as the processing that it kicks off in the SQL Server to update the cache.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Well, there you have it. Administrators spontaneously breaking out in song, bluebirds and rainbows for everyone, and a bright smiling sun grinning at us from behind fluffy white clouds. That last part sounds somehow like Super Mario Brothers, and this frightens me.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4148772" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+General/default.aspx">Team Foundation General</category><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+Setup+Admin+_2600_amp_3B00_+Ops/default.aspx">Team Foundation Setup Admin &amp;amp; Ops</category></item><item><title>He who permissions least, permissions best</title><link>http://blogs.msdn.com/adamsinger/archive/2007/05/23/he-who-permissions-least-permissions-best.aspx</link><pubDate>Wed, 23 May 2007 21:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2820276</guid><dc:creator>Adam Singer</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/adamsinger/comments/2820276.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adamsinger/commentrss.aspx?PostID=2820276</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adamsinger/rsscomments.aspx?PostID=2820276</wfw:comment><description>&lt;P&gt;I've heard a few questions and comments about our permission model recently. For example, some folks have asked why user in two groups, one granted a permission and one denied&amp;nbsp;the same&amp;nbsp;permission, is denied the permission rather than granted it. The answer lies in our permissioning model.&lt;/P&gt;
&lt;P&gt;Lets first define a few terms to get us all on the same page. Note that these are not necessarily official terms, they're just the terms I've used when discussing permissions with folks on the team here:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Identity: A user or group that may&amp;nbsp;be used&amp;nbsp;with the&amp;nbsp;permission system. Groups are&amp;nbsp;both external groups (e.g.&amp;nbsp;active directory security groups) and TFS groups (e.g. [SERVER]\Team Foundation Administrators)&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Securable object: An item in Team Foundation&amp;nbsp;which may have permission rights granted or denied to perform certain operations with the object. Examples are the folders and files stored in Version Control, Area nodes, Projects, and the Team Foundation Server itself.&lt;/LI&gt;
&lt;LI&gt;Explicit vs. Implicit: An explicit perimission for a given identity is assigned directly to that identity, while an implicit permission is assigned to a group the identity is a member of (either direct membership or through nested membership)&lt;/LI&gt;
&lt;LI&gt;Inherited vs. Immediate: While Team Foundation Server global and project permissions don't have a notion of inheritence, permissions on items stored in Version Control do. An inherited permission is assigned to one of the parents of a given securable object, while an immediate permission is set on the securable object itself.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Overall, we follow the same permissioning scheme as the Windows OS. A permission may be allowed, denied, or unset. Unless a permission is allowed (explicitly or implicitly, through inheritence or immediately on the securable object), the permission is denied. The only exception is for Administrator users who are always granted permissions (for Version Control, admin users are users who are Machine Administrators on the AT). Hence, if you don't want users to be able to be able to perform a given action, simply don't grant them permission to do so and don't add them to a group that's been granted that permission.&lt;/P&gt;
&lt;P&gt;From that notion comes the title of this post- keep your permission set as minimal as possible, and you won't run into situations where a user is a member of 27 groups, half of which are granted some set of permissions, half of which are denied some overlapping set, and all of which cause your head to spin.&lt;/P&gt;
&lt;P&gt;Now, that's not to say that you shouldn't set permissions on objects. Certain permissions are necessary to use the system in a reasonable way. Just remember that as soon as a user is denied a permision, whether explicitly or implicitly and whether the permission is inherited or immediate, no amount of grants at any level to any group will override the deny setting. Denied permissions are the trump card and should be used to specifically lock resources and components. Since all denies trump all allows aside from administrator status, users may be unable to perform actions if they're in two groups that have different permission settings.&lt;/P&gt;
&lt;P&gt;Let's walk through a simple example. Suppose you have four different groups- developers, testers, contractor developers, and contractor testers. Due to corporate policy, contractor developers may be disallowed from directly checking in changes&amp;nbsp;and locking files, while contractor testers may be disallowed from viewing the developer source code. Lets also suppose that the two contractor groups have been added to the other two groups (contractor developers to developers and contractor testers to testers). If your product code resides under the&amp;nbsp;Version Control path&amp;nbsp;$/AcmeCode/Product/, you could set permissions on the folder as follows:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;allow the "developers" group read, label, lock, pendchange, and checkin&amp;nbsp;access&lt;/LI&gt;
&lt;LI&gt;deny the "contract developers" group checkin and lock&amp;nbsp;access&lt;/LI&gt;
&lt;LI&gt;allow the "testers" group read access&lt;/LI&gt;
&lt;LI&gt;deny the "contract testers" group read access&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;All other permissions (e.g. "Undo other users changes") are unset for all four of these groups, so are treated as denied permissions unless the users are members of other groups. This permission set will completely lock out the "contract testers" group from that version control path, while the "contract developers" can read, label, and pend changes which they will then shelve to have a full developer check in.&lt;/P&gt;
&lt;P&gt;An alternate method would be to make the developers group a member of the contractor developers group (and not vice versa, only granting the "contractor developers" read, label, and pendchange permission while adding the lock and checkin permissions to the developer group. Of course, this seems a little weird from the perspective of someone looking at group containment and could therefore get confusing.&lt;/P&gt;
&lt;P&gt;So, that's a little long winded, but I hope it gets the point across and helps you make informed decisions about what our permissions mean.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2820276" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adamsinger/archive/tags/TFS+Version+Control/default.aspx">TFS Version Control</category><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+Setup+Admin+_2600_amp_3B00_+Ops/default.aspx">Team Foundation Setup Admin &amp;amp; Ops</category></item><item><title>Can you direct me to Directory Services?</title><link>http://blogs.msdn.com/adamsinger/archive/2007/03/29/can-you-direct-me-to-directory-services.aspx</link><pubDate>Thu, 29 Mar 2007 22:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1990053</guid><dc:creator>Adam Singer</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/adamsinger/comments/1990053.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adamsinger/commentrss.aspx?PostID=1990053</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adamsinger/rsscomments.aspx?PostID=1990053</wfw:comment><description>&lt;p&gt;As with many of my other Administration and Operations posts, this one stems from posts I've seen on the &lt;a href="http://forums.microsoft.com/MSDN/default.aspx?ForumGroupID=5&amp;SiteID=1"&gt;Visual Studio Team System forums&lt;/a&gt;. I've read a number of questions where people are having trouble granting their Active Directory users access to their Team Foundation Server.&lt;/p&gt;&lt;p&gt;What I've found is that, oftentimes, this is due to either the trust relationships between their domains or the permissions for the account currently running as the TFS service account. In the latter case, this may be due to using a local account rather than AD account as the service account, AD permission settings, the "Log on as service" permission, or AD trust relationships (looping us back to the first possibility).&lt;/p&gt;&lt;p&gt;So, to help you figure this all out, I'm going to lay down &lt;a class="" mce_href="http://www.colbertondemand.com/videos/The_Word" href="http://www.colbertondemand.com/videos/The_Word"&gt;The Word&lt;/a&gt; on what it is you need to set up in order to get AD users into TFS.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;If you wish to use AD users, you must either:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Create local accounts with the same user names and passwords as your AD accounts (and add them to a TFS group) if you want to use a local account as your TFS service account (or)&lt;/li&gt;&lt;li&gt;Use an AD account for your TFS service account&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;In the second case, your TFS service account needs to have read access to objects in all domains you wish to add users from&lt;/li&gt;&lt;ul&gt;&lt;li&gt;In short, this means the domain of the TFS service account must be trusted by all of the other domains you wish to use&lt;/li&gt;&lt;li&gt;Also, users in those domains need to be granted the rights to read objects. This is the default, but some folks lock down their ADs so normal users can't read all other users/computers/etc. for their domain. If your domains are set up this way, you'll have to talk the domain admins into granting the permission to your service account explicitly.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;No matter what your TFS service account is, it needs "Log on as a Service" permission. Two useful sites on how to set this permission are &lt;a class="" mce_href="https://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=272335&amp;amp;SiteID=1" href="https://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=272335&amp;amp;SiteID=1"&gt;this forum post&lt;/a&gt; and our &lt;a class="" mce_href="http://msdn2.microsoft.com/en-us/library/ms252480(VS.80).aspx" href="http://msdn2.microsoft.com/en-us/library/ms252480(VS.80).aspx"&gt;MSDN documentation&lt;/a&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Hopefully setting that up will let you add your domain users to TFS. If not, though, there may be fouler forces at work. Still, you'll probably want to take a look back at my other post on getting users into TFS entitled "&lt;a class="" mce_href="http://blogs.msdn.com/adamsinger/archive/2006/11/10/get-your-users-for-nothin-and-your-sync-for-free.aspx" href="http://blogs.msdn.com/adamsinger/archive/2006/11/10/get-your-users-for-nothin-and-your-sync-for-free.aspx"&gt;Get your users for nothin' and your sync for free&lt;/a&gt;" as our periodic sync process is known to have issues in Whidbey (VSTS 2005) RTM and SP1.&lt;/p&gt;&lt;p&gt;Best of luck, and let me know if you hit any other stumbling blocks along the way!&lt;/p&gt;&lt;p&gt;&lt;i&gt;[Edit: I should note that, from what I can recall of our stated support cases, we permit you to have as many two-way trusts as you like, but only claim to support one one-way trust where the TFS service account must be in the trusted domain.]&lt;/i&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1990053" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+Setup+Admin+_2600_amp_3B00_+Ops/default.aspx">Team Foundation Setup Admin &amp;amp; Ops</category></item><item><title>Random Acts of Group-ness</title><link>http://blogs.msdn.com/adamsinger/archive/2007/02/28/random-acts-of-group-ness.aspx</link><pubDate>Wed, 28 Feb 2007 22:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1775203</guid><dc:creator>Adam Singer</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/adamsinger/comments/1775203.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adamsinger/commentrss.aspx?PostID=1775203</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adamsinger/rsscomments.aspx?PostID=1775203</wfw:comment><description>&lt;P&gt;Following up from my last post "&lt;A class="" href="http://blogs.msdn.com/adamsinger/archive/2007/02/09/grep-ing-groups.aspx" mce_href="http://blogs.msdn.com/adamsinger/archive/2007/02/09/grep-ing-groups.aspx"&gt;'Grep'ing Groups&lt;/A&gt;"&amp;nbsp;and &lt;A class="" href="http://forums.microsoft.com/MSDN/showpost.aspx?postid=1284508&amp;amp;siteid=1" mce_href="http://forums.microsoft.com/MSDN/showpost.aspx?postid=1284508&amp;amp;siteid=1"&gt;this&lt;/A&gt; question on the forums, here's a bit of code that will help you add a user to multiple groups across all projects on your server. Say you want to add someone with the&amp;nbsp;domain account&amp;nbsp;"CORPNET\JoeBlogs"&amp;nbsp;to the "Readers" group for all your projects on your Team Foundation Server "atlantis". Simply download, build, and&amp;nbsp;run the attached code with the arguments&amp;nbsp;"atlantis CORPNET\JoeBlogs&amp;nbsp;Readers" as a Team Foundation Adminstrator.&lt;/P&gt;
&lt;P&gt;A few of the more salient points in the code are as follows:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT color=#009999&gt;NTAccount&lt;/FONT&gt; userAccount = &lt;FONT color=#3333ff&gt;new&lt;/FONT&gt; &lt;FONT color=#009999&gt;NTAccount&lt;/FONT&gt;(username);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="courier new,courier"&gt;...&lt;BR&gt;&lt;FONT color=#009999&gt;SecurityIdentifier&lt;/FONT&gt; userSid = (&lt;FONT color=#009999&gt;SecurityIdentifier&lt;/FONT&gt;)userAccount.Translate(&lt;FONT color=#3333ff&gt;typeof&lt;/FONT&gt;(&lt;FONT color=#009999&gt;SecurityIdentifier&lt;/FONT&gt;));&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Here, I'm using some of the System.Security.Principal .NET helpers to conver our user to a SID. While I could also use the IGroupSecurityService's "ReadIdentityFromSource" call, that includes a round-trip to the server and includes a bit more information than we need in this helper code.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT color=#009999&gt;ProjectInfo&lt;/FONT&gt;[] projects = css.ListProjects();&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Here, I chose to use "ListProjects()" rather than "ListAllProjects()". The former only includes well formed projects while the latter will list all projects that are in the process of being created, being deleted, etc. as well. In this case, I think we only want to try to update projects that have been completely constructed.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT color=#009999&gt;Identity&lt;/FONT&gt; projectGroup = gss.ReadIdentity(&lt;FONT color=#009999&gt;SearchFactor&lt;/FONT&gt;.AccountName, &lt;FONT color=#009999&gt;String&lt;/FONT&gt;.Format(&lt;FONT color=#990033&gt;"[{0}]\\{1}"&lt;/FONT&gt;, project.Name, groupToUpdate), &lt;FONT color=#009999&gt;QueryMembership&lt;/FONT&gt;.Expanded);&lt;BR&gt;...&lt;BR&gt;&lt;FONT color=#009999&gt;List&lt;/FONT&gt;&amp;lt;&lt;FONT color=#3333ff&gt;string&lt;/FONT&gt;&amp;gt; members = &lt;FONT color=#3333ff&gt;new&lt;/FONT&gt; &lt;FONT color=#009999&gt;List&lt;/FONT&gt;&amp;lt;&lt;FONT color=#3333ff&gt;string&lt;/FONT&gt;&amp;gt;(projectGroup.Members);&lt;BR&gt;&lt;FONT color=#3333ff&gt;if&lt;/FONT&gt; (!members.Contains(userSid.ToString())) {...}&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Before attempting to add the user to the group, I want to make sure it's not already a member. I chose to query the extended membership rather than just direct as it wouldn't make a difference in terms of user permissions whether the user is a direct member or a member under a nested group. However, if you want to make sure that the user is a direct member of the specified groups, you could change the "QueryMemberhip" value to Direct. Changing the query to Direct will also speed up the ReadIdentity call, particularly if your groups have many members.&lt;/P&gt;
&lt;P&gt;Happy coding!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1775203" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/adamsinger/attachment/1775203.ashx" length="3714" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+Setup+Admin+_2600_amp_3B00_+Ops/default.aspx">Team Foundation Setup Admin &amp;amp; Ops</category><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Coding+Practices/default.aspx">Coding Practices</category></item><item><title>'Grep'ing Groups</title><link>http://blogs.msdn.com/adamsinger/archive/2007/02/09/grep-ing-groups.aspx</link><pubDate>Fri, 09 Feb 2007 20:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1636033</guid><dc:creator>Adam Singer</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/adamsinger/comments/1636033.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adamsinger/commentrss.aspx?PostID=1636033</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adamsinger/rsscomments.aspx?PostID=1636033</wfw:comment><description>&lt;P&gt;Man have I been busy. What have I been busy doing? Well, see there's.... actually, I'll let &lt;A class="" title="Brian Harry" href="http://blogs.msdn.com/bharry/" mce_href="http://blogs.msdn.com/bharry/"&gt;Brian&lt;/A&gt; explan as he's &lt;A class="" title="Automated Testing" href="http://blogs.msdn.com/bharry/archive/2007/02/04/managing-quality-part-2-automated-testing.aspx" mce_href="http://blogs.msdn.com/bharry/archive/2007/02/04/managing-quality-part-2-automated-testing.aspx"&gt;already done&lt;/A&gt; such an eloquent job at it, with&amp;nbsp;some neat charts and graphs, too.&lt;/P&gt;
&lt;P&gt;I mentioned in my last post that I have some code that will help you find built-in groups. It's actually pretty simple, and build upon code that &lt;A class="" title="James Manning" href="http://blogs.msdn.com/jmanning/" mce_href="http://blogs.msdn.com/jmanning/"&gt;James&lt;/A&gt; already provided &lt;A class="" title="Listing users and groups" href="http://blogs.msdn.com/jmanning/archive/2006/05/02/588648.aspx" mce_href="http://blogs.msdn.com/jmanning/archive/2006/05/02/588648.aspx"&gt;last year&lt;/A&gt;. Say you want to find the Team Foundation&amp;nbsp;Administrators group, the Valid Users group, or the Service Accounts group. These three groups are always created when TFS installs, so we added a neat flag to help you access them without knowing anything else than the server name. Try using the attached file as the main file in a new C# console application and then add dll references to Microsoft.TeamFoundation.dll, Microsoft.TeamFoundation.Client.dll, and Microsoft.TeamFoundation.Common.dll. Many thanks to Matt Hoover for the code review on my sample code here.&lt;/P&gt;
&lt;P&gt;The key piece of code is the following method. &lt;/P&gt;&lt;FONT size=2&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;summary&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; Prints out the membership of the three built-in groups&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;/summary&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;FONT size=2&gt; DisplayBuiltinGroupMembers()&lt;BR&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#008000 size=2&gt;// Find all the Administrative users&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;Identity&lt;/FONT&gt;&lt;FONT size=2&gt; adminUserSids = m_gss.ReadIdentity(&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;SearchFactor&lt;/FONT&gt;&lt;FONT size=2&gt;.AdministrativeApplicationGroup, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;QueryMembership&lt;/FONT&gt;&lt;FONT size=2&gt;.Expanded);&lt;BR&gt;PrintSubUsers(adminUserSids);&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;// Find all the Service accounts&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;Identity&lt;/FONT&gt;&lt;FONT size=2&gt; serviceSids = m_gss.ReadIdentity(&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;SearchFactor&lt;/FONT&gt;&lt;FONT size=2&gt;.ServiceApplicationGroup, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;QueryMembership&lt;/FONT&gt;&lt;FONT size=2&gt;.Expanded);&lt;BR&gt;PrintSubUsers(serviceSids);&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;// Find all the valid users&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;Identity&lt;/FONT&gt;&lt;FONT size=2&gt; allUserSids = m_gss.ReadIdentity(&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;SearchFactor&lt;/FONT&gt;&lt;FONT size=2&gt;.EveryoneApplicationGroup, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;QueryMembership&lt;/FONT&gt;&lt;FONT size=2&gt;.Expanded);&lt;BR&gt;PrintSubUsers(allUserSids);&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT size=2&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;We can also read the project administatrative groups in a similar way. The only thing you need to know is the project URI. Note that if you have the project name you can find its URI the ICommonStructureService's "GetProjectFromName" method.&lt;/P&gt;&lt;FONT size=2&gt;
&lt;BLOCKQUOTE&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;
&lt;P&gt;ProjectInfo&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; project = m_css.GetProjectFromName(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"My Project"&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt;);&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;Identity&lt;/FONT&gt;&lt;FONT size=2&gt; adminGroup = m_gss.ReadIdentity(&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;SearchFactor&lt;/FONT&gt;&lt;FONT size=2&gt;.AdministrativeApplicationGroup, project.Uri, &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;QueryMembership&lt;/FONT&gt;&lt;FONT size=2&gt;.Expanded);&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/FONT&gt;
&lt;P&gt;Disclaimers: The most efficient means of reading identity information is by using the SearchFactor.Sid. If you plan to do a tremendous number of queries like the ones in my sample app and want to get the best perf, this may not be the right method for you. Instead, use the members of the Microsoft.TeamFoundation.GroupWellKnownSidConstants class in Microsoft.TeamFoundation.Common.dll (this will also allow you to access the Licensed Users Group which only exists in the Team Foundation Server Workgroup Edition). Even so, the extra SearchFactors can make your code&amp;nbsp;look a bit prettier.&lt;FONT size=2&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1636033" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/adamsinger/attachment/1636033.ashx" length="7249" type="text/plain" /><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+Setup+Admin+_2600_amp_3B00_+Ops/default.aspx">Team Foundation Setup Admin &amp;amp; Ops</category><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Coding+Practices/default.aspx">Coding Practices</category></item><item><title>Living Large</title><link>http://blogs.msdn.com/adamsinger/archive/2007/01/08/living-large.aspx</link><pubDate>Mon, 08 Jan 2007 19:31:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1434523</guid><dc:creator>Adam Singer</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/adamsinger/comments/1434523.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adamsinger/commentrss.aspx?PostID=1434523</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adamsinger/rsscomments.aspx?PostID=1434523</wfw:comment><description>&lt;P&gt;As &lt;A class="" href="http://blogs.msdn.com/bharry" mce_href="http://blogs.msdn.com/bharry"&gt;Brian&lt;/A&gt;&amp;nbsp;points out, there are some new &lt;A class="" href="http://msdn2.microsoft.com/en-us/vstudio/aa948851.aspx" mce_href="http://msdn2.microsoft.com/en-us/vstudio/aa948851.aspx"&gt;Orcas specifications&lt;/A&gt; available for TFS. I've been working on the Large Group Sync crew for some time, and am very proud of the end result. What used to wind up as a support call can instead be managed by your Team Foundation administrator. While the whole system may not handle an enormous number of users in the system, at least the basics will still work and you can back out to a fully functional state by paring down the number of users. I can't wait until this gets released so you folks "out in the wild" get a chance to see how it works!&lt;/P&gt;
&lt;P&gt;Of course, never one to miss an opportunity for some form of celebration, I baked a batch of sugar cookies for the team:&lt;BR&gt;&lt;IMG title="Sugar cookies with an important message" alt="Sugar cookies with an important message" src="http://blogs.msdn.com/photos/adamsinger/images/1434749/original.aspx" mce_src="http://blogs.msdn.com/photos/adamsinger/images/1434749/original.aspx"&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1434523" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+Setup+Admin+_2600_amp_3B00_+Ops/default.aspx">Team Foundation Setup Admin &amp;amp; Ops</category></item><item><title>Virtual Green is made of People!</title><link>http://blogs.msdn.com/adamsinger/archive/2006/12/14/virtual-green-is-made-of-people.aspx</link><pubDate>Thu, 14 Dec 2006 21:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1287530</guid><dc:creator>Adam Singer</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/adamsinger/comments/1287530.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adamsinger/commentrss.aspx?PostID=1287530</wfw:commentRss><wfw:comment>http://blogs.msdn.com/adamsinger/rsscomments.aspx?PostID=1287530</wfw:comment><description>&lt;P&gt;So you want to run &lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/aa718825.aspx"&gt;Team Foundation Server&lt;/a&gt;, but don't have the physical machine resources. You think- 'hey, isn't &lt;A class="" href="http://www.microsoft.com/windowsserversystem/virtualserver/default.mspx" mce_href="http://www.microsoft.com/windowsserversystem/virtualserver/default.mspx"&gt;Virtual Server&lt;/A&gt; a free download now?' You're right! And what's best, TFS works just fine in a Virtual Server. Having done quite a bit of testing against servers set up in virtual machines, I can attest to at least basic functionality (and much deeper for some features). Still, there are a few issues to consider of before put all your eggs in the bandwagon as the train leaves the station.&lt;/P&gt;
&lt;P&gt;First, we generally recommend that any virtual machine have somewhat increased memory and hardware from the default &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/ms316473(VS.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms316473(VS.80).aspx"&gt;recommendations&lt;/A&gt;, and the host machine should have approximately&amp;nbsp;double the recommended RAM. Also, I've heard that it can help to have the virtual machine's VHD stored on an entirely separate physical drive from the drive with the host machine's OS. If you have other processor intensive operations running on the host OS, or other VPCs running simultaneously, your TFS performance will decline as well.&lt;/P&gt;
&lt;P&gt;Also note that I don't know if virtual machines are an officially supported TFS hosting mechanism (I would postulate due to potential performance hits as well as network configuration issues between host and guest OS). That being said, for small teams, virtual machines will likely help ease the hardware costs of a new server.&lt;/P&gt;
&lt;P&gt;Oh- and virual machines certainly aren't made of people, you know. They're made of other machines, chopped up and reprocessed into a messy pulp of silicon and plastic, and eventually reconstituted as a &lt;A class="" href="http://en.wikipedia.org/wiki/Replicant" mce_href="http://en.wikipedia.org/wiki/Replicant"&gt;Replicant&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1287530" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+General/default.aspx">Team Foundation General</category><category domain="http://blogs.msdn.com/adamsinger/archive/tags/Team+Foundation+Setup+Admin+_2600_amp_3B00_+Ops/default.aspx">Team Foundation Setup Admin &amp;amp; Ops</category></item></channel></rss>