Unattended Installation of TFS 2012
Team Foundation Server Administration
September 24th, 2012
Abstract
This paper provides information about command-line, or unattended, installation for
Team Foundation Server 2012. It guides TFS administrators through the process of
pre-setting and deploying a configuration of TFS. The paper assumes that the reader
is familiar with the basics of the TFS configuration process.
This information applies to the following products:
Visual Studio Team Foundation Server 2012
Visual Studio Team Foundation Server Express 2012
References and resources that are discussed in this paper are listed at the end.
Disclaimer: This document is provided “as-is”. Information and views expressed in this document, including
URL and other Internet website references, may change without notice. Some information relates to prereleased product which may be substantially modified before it’s commercially released. Microsoft makes no
warranties, express or implied, with respect to the information provided here. You bear the risk of using it.
This document does not provide you with any legal rights to any intellectual property in any Microsoft
product. You may copy and use this document for your internal, reference purposes. You may modify this
document for your internal, reference purposes.
© 2012 Microsoft. All rights reserved.
Unattended Installation of TFS 2012 - 2
Contents
Introduction ................................................................................................................ 3
What is Unattended Installation? .......................................................... 3
Who Should Use Unattended Install? .................................................... 3
Feature Overview ........................................................................................................... 3
Creating a Configuration File.......................................................................................... 4
Types of Installations.............................................................................. 4
Editing the Configuration File......................................................................................... 5
Running the Configuration ............................................................................................. 6
Examples ................................................................................................ 7
Sample Output ....................................................................................... 7
Feature Limitations ........................................................................................................ 8
Other Resources ............................................................................................................. 9
Help Documentation .............................................................................. 9
August 9, 2012
© 2012 Microsoft. All rights reserved.
Unattended Installation of TFS 2012 - 3
Introduction
What is Unattended Installation?
Unattended install is a feature of Team Foundation Server that lets a user pre-set all
configuration parameters for a desired TFS instance in advance. This allows TFS to be
configured from start to finish without pausing for input from the Configuration
Wizard during the process. Unattended Installation takes place via the command
prompt. This paper describes the two commands through which it is performed:
Create and Configure.
Who Should Use Unattended Install?
This feature is ideal for users who are very familiar with TFS and the configuration
process, and whose environment divides TFS functions over many different machines.
For example, many large-scale enterprise systems have several servers that are
designated to builds. Unattended install allows an administrator to quickly kick off
the Team Build installation process on these machines without having to supervise
each one independently. Furthermore, since the configuration for each build server
will likely be almost or completely identical, it should be easy to set each machine’s
configuration parameters quickly.
Feature Overview
The unattended install feature can be used to configure all different instance types of
TFS. These include: Basic, Standard, AT-Only, Build, Proxy, and SharePoint Extensions.
To do this, you must determine in advance how the instance should be configured—
usually by creating an .ini file and editing it — and then run the specified
configuration in the command prompt. This paper covers both the Create command
to make this file and the Configure command to actually run the configuration. It
explains the different options, or parameters, for these commands and touches on a
few scenarios that unattended install does not support.
The feature’s name is somewhat of a misnomer because the “unattend” commands
actually perform configuration work as opposed to installation. In order to carry out
the full end-to-end installation of TFS, from loading the bits onto the disk to
configuring them, you must make a batch file or PowerShell script that combines the
unattend commands with an additional install command. The first command to run is
the install command, which is not part of the unattend feature. To install the bits,
navigate to the location of the program’s main executable (this is likely on a DVD that
is inserted into the machine). Then, depending on whether the version of the
program is TFS or TFS Express, enter one of the following commands:
tfs_server.exe /quiet
or tfs_express.exe /quiet
After this step is complete, proceed to the unattend commands in the next sections.
August 9, 2012
© 2012 Microsoft. All rights reserved.
Unattended Installation of TFS 2012 - 4
Creating a Configuration File
The first step to initiate an unattended installation is to create a configuration file for
the specific type of installation to be performed. This step creates a file with all
relevant parameters for the given installation and performs an environment scan on
the machine to populate them with smart default values.
Navigate to the Tools directory within the TFS folder. By default, this folder is placed
in the Program Files folder of the local machine’s C: drive.
cd C:\Program Files\Microsoft Team Foundation Server 11.0\Tools
Once in the Tools folder, you can run the Create command. The basic syntax for this
command is:
tfsconfig unattend /create /type:<type> /unattendfile:<file> [/inputs:<inputs>]
Here is a valid example command:
tfsconfig unattend /create /type:basic /unattendfile:configbasic.ini
See the results below. The command will be recognized and an activity log created.
The Create command has two required parameters and one optional parameter.
‘/inputs:’ is optional and will be explained later. ‘/type:’ and ‘/unattendfile:’ are
always required. The possible configuration types are explained in the following
section. ‘/unattendfile:’ represents the user-specified path for the configuration file
and must end in.ini.
Types of Installations
The unattended install feature supports all the same installation types that the
Configuration Wizard supports and contains fields for the same set of configuration
parameters. For the most part, the name of each configuration type for unattended
install mirrors the name in the Wizard. Here is a list of names and descriptions of the
types of unattended configurations:

BASIC: Configures the essential development services for Team Foundation
Server. This includes Source Control, Work Item Tracking, and Test Case
Management.

STANDARD: Configures the essential development services along with
integration with Reporting Services and SharePoint Products. Requires at a
minimum to either set ‘UseWss=False’ or provide
‘WssAdminSiteAccountName.’
o
Note – Since the configuration file for this install type allows
Reporting and/or SharePoint to be disabled, it embodies both the
Standard and Advanced configurations in the Configuration Wizard.
The configuration file default is to set ‘UseReporting=True’ and
‘UseWss=True,’ thereby invoking a standard configuration.
August 9, 2012
© 2012 Microsoft. All rights reserved.
Unattended Installation of TFS 2012 - 5

ATONLY: Reinstalls the Team Foundation Server application tier using existing
databases or adds another application tier to a load-balanced farm.

BUILD: Configures Team Build services. Creates or replaces build hosts.
Creates, adds, or replaces build controllers and build agents.

PROXY: Configures a version control proxy service.

SPINSTALL: Installs SharePoint on server operating systems.
o

Note – Unlike in the Configuration Wizard, SharePoint is not installed
automatically before an unattended TFS Standard configuration.
Therefore, the user may need to run ‘spinstall’ before ‘standard’ if the
user plans to set ‘UseWSS=True.’
SPEXTENSIONS: Configures SharePoint extensions.
o
Note – Unlike in the Configuration Wizard, SharePoint is not installed
automatically during a SharePoint Extensions configuration. The user
must run ‘spinstall’ before ‘spextensions’ if SharePoint is not already
installed on the machine.
While the smart defaults in the configuration file for each type normally result in a
successful configuration, it is important to examine the validity of each parameter in
this file after it has been created. The smart default may not match the user’s
expectation or intention. For some installation types, such as standard, additional
information must always be entered by the user before the configuration file will run.
To enter or overwrite parameter values, you can either specify inputs in the Create
command or open and edit the configuration file after it has been created.
To specify inputs in the Create command, append the optional ‘/inputs:’ parameter to
the end. Inputs are specified as <key>=<value> pairs, separated by semicolons. The
key must match the name of a parameter in the configuration file, and the
corresponding value is the string that will override the default value for that
parameter.
Here is an example command that utilizes the ‘/inputs:’ parameter:
tfsconfig unattend /create /type:standard /unattendfile:configstandard.ini
/inputs:UseWss=False;UseReporting=False
 It is not required to create a configuration file before running the command to
configure a TFS instance. However, skipping to the Configure command requires
knowledge of the specific installation type’s parameters and often their default
values for the local machine. Thus, it is not advisable to skip the file creation step
except for in very specific cases, like when revising or replicating a pre-existing
machine configuration.
Editing the Configuration File
To edit the configuration file that resulted from the previous step, simply enter the
name of the filepath into the command prompt. This will open the file in a text editor.
August 9, 2012
© 2012 Microsoft. All rights reserved.
Unattended Installation of TFS 2012 - 6
Below is an example of a file that was generated for a standard configuration. Since
the file is named “create” and exists in the local directory, it was opened by entering
create.ini into the command prompt.
The lines with a leading semicolon are comments to help clarify the meaning of the
parameter below it. Be sure to edit the line containing the parameter and not the
comment. Once the desired changes are made, save the file and close it.
Running the Configuration
The final step of the unattended installation is to run the desired configuration on the
machine. This process performs the same validation checks as the Configuration
Wizard and then configures the specified TFS instance on the machine.
The Configure command can be run in two ways. The first option is to specify a
configuration file. This uses the file that was created in the previous two steps and is
the recommended way to run an unattended configuration. The other way is simply
to specify a type of installation to run (in the same way that a user specifies a
configuration file type in the Create command), with the option of specifying inputs
to override the smart defaults. These options are mutually exclusive; you cannot
specify both a file and a type.
The basic forms of the Configure command are:
:: Option 1
tfsconfig unattend /configure /unattendfile:<file> [/inputs:<inputs>]
[/verify] [/continue]
:: Option 2
August 9, 2012
© 2012 Microsoft. All rights reserved.
Unattended Installation of TFS 2012 - 7
tfsconfig unattend /configure /type:<type> [/inputs:<inputs>] [/verify]
[/continue]
Each parameter for the Configure command is explained in the table below.
Table of Configure Parameters
Command
/unattendfile:,
/type:
Behavior
Same behavior as in Create.
Unattendfile: the path for the .ini
input file.
Type: The type of unattended
configuration to run.
User Input
Specify a
configuration file.
Specify one of the
possible types.
Required?
Either the
configuration file or
the type is required,
but only one may
be specified.
/inputs:
Has the same syntax as in the
Create command. When ‘/type’ is
specified, allows override of smart
defaults; when ‘/unattendfile’ is
specified, overrides values in the
file.
Stops the process after the
verification checks; does not
configure
Overrides the default behavior of
stopping configuration on a
warning until user presses ‘Enter.’
<key>=<value>,
separated by
semicolons
Optional
No additional input
Optional
No additional input
Optional
(Has no effect when
‘/verify’ is also
specified)
/verify
/continue
 In cases where the user intends to run a configuration without creating a
configuration file to manage the inputs, it is strongly recommended to run
‘/verify’ before proceeding with the full configuration.
Examples:
Below are two examples of valid configuration commands.
:: Run readiness checks only on a configuration by type with 1 override
tfsconfig unattend /configure /type:atonly /inputs:UseSqlAlwaysOn=True
/verify
:: After viewing results of the checks, run configuration straight through
tfsconfig unattend /configure /type:atonly /inputs:UseSqlAlwaysOn=True
/continue
:: “configureatonly.ini” has been made using “tfsconfig unattend /create…”
:: Basic command to run a configuration by file
tfsconfig unattend /configure /unattendfile:configureatonly.ini
Sample Output
The screenshot below is sample output for a successful unattended Build
configuration. Notice that the input parameters for the configuration are displayed
on the screen as the command is run, followed by the readiness checks and the
configuration steps. A final message is displayed at the bottom stating whether or
August 9, 2012
© 2012 Microsoft. All rights reserved.
Unattended Installation of TFS 2012 - 8
not the configuration completed successfully, followed by the file path to the event
log for the process.
If there had been any issues with the configuration process, warnings would be
displayed in yellow and errors would be displayed in red. Warnings require the user’s
approval to continue with configuration unless ‘/continue’ is specified. In the case
that there are errors, configuration will not succeed.
Feature Limitations
There are a few scenarios that unattended installation does not currently support:

Unattended install is only intended for use in on-premises scenarios.
Although the Configuration Wizard can also install Build and Proxy instances
that point to Azure databases, this functionality has not been implemented
for the command line (there is no place to supply the Azure Cloud Storage
account information).
August 9, 2012
© 2012 Microsoft. All rights reserved.
Unattended Installation of TFS 2012 - 9

As stated above, the ‘standard’ and ‘spextensions’ processes do not install
SharePoint automatically during unattended configuration. SharePoint must
be installed separately using ‘spinstall’ before running these installations if it
has not been installed already.

Unattended install is available for Team Foundation Server Express; however,
only the ‘build’ and ‘basic’ (where ‘SqlInstance=SqlExpress’) configuration
types will succeed. Unattended install will block on configuration types that
cannot be installed on the Express SKU, such as ‘spinstall,’ ‘spextensions,’ and
‘proxy,’ and will raise errors for the ‘atonly’ and ‘Standard’ configuration
types, since TFS Express is only compatible with SQL Express.

Reusing unattended configuration files across machines is not currently
supported because configuration files use the machine name in certain
default parameter values. It is a goal to improve this functionality in the
future. In the meantime, users can write their own scripts to dynamically
switch out the machine names in their configuration file to suit their needs.
Other Resources
Help Documentation
Most of the information covered in this whitepaper is summarized in TFSConfig Help for user
reference. This Help documentation lists the commands necessary to run an unattended
install and includes all required and optional parameters for these commands. It also
provides example commands and a description of each of the supported installation types.
To access the Help documentation for this feature, navigate to the Tools folder in your TFS
directory using the command prompt. If you installed Team Foundation Server to Program
Files on your C: drive, the command will look like this:
cd C:\Program Files\Microsoft Team Foundation Server 11.0\Tools
Once you have navigated to the appropriate location, type: tfsconfig help unattend
The following page contains a screenshot of the information that should appear.
August 9, 2012
© 2012 Microsoft. All rights reserved.
Unattended Installation of TFS 2012 - 10
August 9, 2012
© 2012 Microsoft. All rights reserved.