{"id":4203,"date":"2012-10-12T11:21:00","date_gmt":"2012-10-12T11:21:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudioalm\/2012\/10\/12\/unattended-installation-of-team-foundation-server-20122013\/"},"modified":"2022-07-22T00:54:10","modified_gmt":"2022-07-22T08:54:10","slug":"unattended-installation-of-team-foundation-server-20122013","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/devops\/unattended-installation-of-team-foundation-server-20122013\/","title":{"rendered":"Unattended Installation of Team Foundation Server 2012\/2013"},"content":{"rendered":"<p>This post instructs you on how to run an unattended installation of Team Foundation Server, a new feature to TFS 2012.\u00a0 There is another copy of this post located <a href=\"http:\/\/blogs.msdn.com\/b\/tfsao\/archive\/2012\/10\/01\/unattended-installation-of-tfs-2012.aspx\">here<\/a>, on the TFS Setup, Administration, and Operations blog.<\/p>\n<p>**Note: **As nothing in this area has changed for TFS 2013, the title of this document has been amended to encompass the 2013 release as well.<\/p>\n<p>\u00a0<\/p>\n<h2>Introduction\u00a0\u00a0\u00a0<\/h2>\n<h3><span style=\"font-size: small\">What is Unattended Installation?<\/span><\/h3>\n<p>\u00a0<span style=\"font-size: small\"><span style=\"font-family: Calibri\">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.\u00a0 This allows TFS to be configured from start to finish without pausing for input from the Configuration Wizard during the process.\u00a0 Unattended Installation takes place via the command prompt.\u00a0 This paper describes the two commands through which it is performed: Create and Configure.\u00a0 <\/span><\/span><\/p>\n<h3><span style=\"font-size: small\">Who Should Use Unattended Install?<\/span><\/h3>\n<p>\u00a0<span style=\"font-size: small\"><span style=\"font-family: Calibri\">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.\u00a0 For example, many large-scale enterprise systems have several servers that are designated to builds.\u00a0 Unattended install allows an administrator to quickly kick off the Team Build installation process on these machines without having to supervise each one independently.\u00a0 Furthermore, since the configuration for each build server will likely be almost or completely identical, it should be easy to set each machine\u2019s configuration parameters quickly.<\/span><\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: Calibri;font-size: small\">\u00a0<\/span><\/p>\n<p>\u00a0<\/p>\n<div>\n<h2>\n    Feature Overview\n  <\/h2>\n<\/div>\n<p>\u00a0<span style=\"font-size: small\"><span style=\"font-family: Calibri\">The unattended install feature can be used to configure all different instance types of TFS.\u00a0 These include: Basic, Standard, AT-Only, Build, Proxy, and SharePoint Extensions.\u00a0 To do this, you must determine in advance how the instance should be configured\u2014usually by creating an .ini file and editing it \u2014 and then run the specified configuration in the command prompt.\u00a0 This paper covers both the Create command to make this file and the Configure command to actually run the configuration.\u00a0 It explains the different options, or parameters, for these commands and touches on a few scenarios that unattended install does not support.<\/span><\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">The feature\u2019s name is somewhat of a misnomer because the \u201cunattend\u201d commands actually perform configuration work as opposed to installation.\u00a0 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.\u00a0 The first command to run is the install command, which is not part of the unattend feature.\u00a0 To install the bits, navigate to the location of the program\u2019s main executable (this is likely on a DVD that is inserted into the machine).\u00a0 Then, depending on whether the version of the program is TFS or TFS Express, enter one of the following commands:<\/span><\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;font-size: small\"><strong>tfs_server.exe \/quiet<\/strong><strong> <\/strong><span><span>or\u00a0 <\/span><\/span><strong>tfs_express.exe \/quiet<\/strong><\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">After this step is complete, proceed to the unattend commands in the next sections.<\/span><\/span><\/p>\n<p>\u00a0<\/p>\n<div>\n<h2>\n    \u00a0\n  <\/h2>\n<h2>\n    Creating a Configuration File\u00a0\n  <\/h2>\n<\/div>\n<p>\u00a0<span style=\"font-size: small\"><span style=\"font-family: Calibri\">The first step to initiate an unattended installation is to create a configuration file for the specific type of installation to be performed.\u00a0 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.<\/span><\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Navigate to the Tools directory within the TFS folder.\u00a0\u00a0 By default, this folder is placed in the Program Files folder of the local machine\u2019s C: drive.<\/span><\/span><\/p>\n<p>\u00a0<span style=\"font-family: terminal,monaco;font-size: small\"><strong><span>cd C:Program FilesMicrosoft Team Foundation Server 11.0Tools<\/span><\/strong><\/span><\/p>\n<p>\u00a0<span style=\"font-size: small\"><span style=\"font-family: Calibri\">Once in the Tools folder, you can run the Create command.\u00a0 The basic syntax for this command is:<\/span><\/span><\/p>\n<p><span><span style=\"font-family: Lucida Sans Typewriter\"><span style=\"font-family: terminal,monaco;font-size: small\"><strong>tfsconfig unattend \/create <\/strong>\/type:<type> \/unattendfile:<file> [\/inputs:<inputs>]<\/inputs><\/file><\/type><\/span><\/span><\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Here is a valid example command:<\/span><\/span><\/p>\n<p><strong><span><span style=\"font-family: Lucida Sans Typewriter\">tfsconfig unattend \/create \/type:basic \/unattendfile:configbasic.ini<\/span><\/span><\/strong><\/p>\n<p>\u00a0<span style=\"font-size: small\"><span style=\"font-family: Calibri\">See the results below.\u00a0 The command will be recognized and an activity log created.<\/span><\/span><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/10\/6862.Create20Output.png\" alt=\"\" border=\"0\" \/><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">The Create command has two required parameters and one optional parameter.\u00a0 \u2018\/inputs:\u2019 is optional and will be explained later.\u00a0 \u2018\/type:\u2019 and \u2018\/unattendfile:\u2019 are always required.\u00a0 The possible configuration types are explained in the following section.\u00a0 \u2018\/unattendfile:\u2019 represents the user-specified path for the configuration file and must end in.ini.<\/span><\/span><\/p>\n<p>\u00a0<\/p>\n<h3><span style=\"font-size: small\">Types of Installations<\/span><\/h3>\n<p>\u00a0<span style=\"font-size: small\"><span style=\"font-family: Calibri\">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.\u00a0 For the most part, the name of each configuration type for unattended install mirrors the name in the Wizard.\u00a0 Here is a list of names and descriptions of the types of unattended configurations:<\/span><\/span><\/p>\n<ul>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\"><strong>BASIC:<\/strong> Configures the essential development services for Team Foundation Server.\u00a0 This includes Source Control, Work Item Tracking, and Test Case Management.<\/span><\/span><\/li>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\"><strong>STANDARD:<\/strong>\u00a0 Configures the essential development services along with integration with Reporting Services and SharePoint Products.\u00a0 Requires at a minimum to either set \u2018UseWss=False\u2019 or provide \u2018WssAdminSiteAccountName.\u2019<\/span><\/span> \n<ul>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\"><em>Note \u2013 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.\u00a0 The configuration file default is to set \u2018UseReporting=True\u2019 and \u2018UseWss=True,\u2019 thereby invoking a standard configuration.<\/em><\/span><\/span><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\"><strong>ATONLY:<\/strong> Reinstalls the Team Foundation Server application tier using existing databases or adds another application tier to a load-balanced farm.<\/span><\/span><\/li>\n<li>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\"><strong>BUILD:<\/strong> Configures Team Build services.\u00a0 Creates, replaces, or restores\u00a0build hosts.\u00a0 Creates, adds, replaces,\u00a0or restores\u00a0build controllers and build agents.<\/span><\/span><\/p>\n<\/li>\n<li>\n<p><span style=\"font-size: small\"><em>Note &#8211; there are four types of Build configurations: create, replace, restore, and scale.\u00a0 It&#8217;s a good idea to decide which type of configuration you need and specify it with an input parameter when creating your .ini file, as the contents of the .ini file will differ depending on the configuration type.<\/em><\/span><\/p>\n<\/li>\n<li>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\"><strong>PROXY:<\/strong> Configures a version control proxy service.<\/span><\/span><\/p>\n<\/li>\n<li>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\"><strong>SPINSTALL:<\/strong> Installs SharePoint on server operating systems.<\/span><\/span><\/p>\n<ul>\n<li><em><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Note \u2013<strong> <\/strong>Unlike in the Configuration Wizard, SharePoint is not installed automatically before an unattended TFS Standard configuration.\u00a0 Therefore, the user may need to run \u2018spinstall\u2019 before \u2018standard\u2019 if the user plans to set \u2018UseWSS=True.\u2019<\/span><\/span><\/em><\/li>\n<\/ul>\n<\/li>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\"><strong>SPEXTENSIONS:<\/strong> Configures SharePoint extensions.<\/span><\/span><\/li>\n<li>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\"><em>Note \u2013 Unlike in the Configuration Wizard, SharePoint is not installed automatically during a SharePoint Extensions configuration.\u00a0 The user must run \u2018spinstall\u2019 before \u2018spextensions\u2019 if SharePoint is not already installed on the machine<\/em><\/span><\/span><\/p>\n<\/li>\n<li>\n<p><span style=\"font-size: small\"><span style=\"font-size: small\"><span style=\"font-family: Calibri\"><strong>UPGRADE: <\/strong>Upgrades Team Foundation Server to the current version from a previous release (where permitted).\u00a0 This includes upgrading TFS 2012 quarterly RTM&#8217;s and GoLive CTP&#8217;s.<\/span><\/span><\/span><\/p>\n<ul>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\"><em>Note \u2013 Upgrade is not currently listed as an install option in the help guidance for this feature, but it does exist.\u00a0 We are working to\u00a0remedy this\u00a0now.<\/em><\/span><\/span><\/li>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\"><em>Note \u2013\u00a0Before running this configuration, you will need to ensure you have a current backup of your databases and then\u00a0override &#8216;ConfirmBackup&#8217; so that\u00a0&#8216;ConfirmBackup=True.&#8217;\u00a0\u00a0Otherwise, the configuration will not run.<\/em><\/span><\/span> \u00a0<span style=\"font-size: small\"><span style=\"font-family: Calibri\">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.\u00a0 The smart default may not match the user\u2019s expectation or intention.\u00a0 For some installation types, such as standard, additional information must always be entered by the user before the configuration file will run.\u00a0 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.<\/span><\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u00a0<span style=\"font-size: small\"><span style=\"font-family: Calibri\">To specify inputs in the Create command, append the optional \u2018\/inputs:\u2019 parameter to the end.\u00a0 Inputs are specified as <key>=<value> pairs, separated by semicolons. \u00a0The 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.<\/value><\/key><\/span><\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Here is an example command that utilizes the \u2018\/inputs:\u2019 parameter:<\/span><\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;font-size: small\"><strong><span>tfsconfig unattend \/create \/type:standard \/unattendfile:configstandard.ini <\/span><\/strong><\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;font-size: small\"><strong><span>\u00a0\u00a0\u00a0 \/inputs:UseWss=False;<\/span><\/strong><\/span><span style=\"font-family: terminal,monaco;font-size: small\"><strong><span>UseReporting=False<\/span><\/strong><\/span><\/p>\n<p class=\"Checklist\">\n  <span style=\"font-size: small\"><span style=\"font-family: Calibri\"><span style=\"font-family: Arial\">Note:\u00a0 <\/span>It is not required to create a configuration file before running the command to configure a TFS instance.\u00a0 However, skipping to the Configure command requires knowledge of the specific installation type\u2019s parameters and often their default values for the local machine.\u00a0 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. <\/span><\/span>\n<\/p>\n<p>\u00a0<\/p>\n<div>\n<h2>\n    \u00a0\n  <\/h2>\n<h2>\n    Editing the Configuration File\u00a0\n  <\/h2>\n<\/div>\n<p>\u00a0<span style=\"font-size: small\"><span style=\"font-family: Calibri\">To edit the configuration file that resulted from the previous step, simply enter the name of the filepath into the command prompt.\u00a0 This will open the file in a text editor.<\/span><\/span><\/p>\n<p>\u00a0<span style=\"font-family: Calibri;font-size: small\">Below is an example of a file that was generated for a standard configuration. Since the file is named \u201ccreate\u201d and exists in the local directory, it was opened by entering <\/span>&#42;&#42;create.ini&#42;&#42;**<span style=\"font-size: small\"><span style=\"font-family: Calibri\">into the command prompt.<\/span><\/span><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/10\/3527.ini20file.png\" alt=\"\" border=\"0\" \/><\/p>\n<p>\u00a0<span style=\"font-size: small\"><span style=\"font-family: Calibri\">The lines with a leading semicolon are comments to help clarify the meaning of the parameter below it.\u00a0 Be sure to edit the line containing the parameter and not the comment.\u00a0 Once the desired changes are made, save the file and close it.<\/span><\/span><\/p>\n<p>\u00a0<\/p>\n<p align=\"center\">\n  <span style=\"font-family: Calibri;font-size: small\">\u00a0<\/span>\n<\/p>\n<p>\u00a0<\/p>\n<div>\n<h2>\n    Running the Configuration\n  <\/h2>\n<\/div>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">The final step of the unattended installation is to run the desired configuration on the machine.\u00a0 This process performs the same validation checks as the Configuration Wizard and then configures the specified TFS instance on the machine.<\/span><\/span><\/p>\n<p>\u00a0<span style=\"font-size: small\"><span style=\"font-family: Calibri\">The Configure command can be run in two ways.\u00a0 The first option is to specify a configuration file.\u00a0 This uses the file that was created in the previous two steps and is the recommended way to run an unattended configuration.\u00a0 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.\u00a0 These options are mutually exclusive; you cannot specify both a file and a type.<\/span><\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">The basic forms of the Configure command are:<\/span><\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;font-size: small\"><strong><span>:: Option 1<\/span><\/strong><\/span><\/p>\n<p><span><span style=\"font-family: Lucida Sans Typewriter\"><span style=\"font-family: terminal,monaco;font-size: small\"><strong>tfsconfig unattend \/configure <\/strong>\/unattendfile:<file> [\/inputs:<inputs>] [\/verify] [\/continue]<\/inputs><\/file><\/span><strong><\/strong><\/span><\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;font-size: small\"><strong><span>:: Option 2<\/span><\/strong><\/span><\/p>\n<p><span><span style=\"font-family: Lucida Sans Typewriter\"><span style=\"font-family: terminal,monaco;font-size: small\"><strong>tfsconfig unattend \/configure <\/strong>\/type:<type> [\/inputs:<inputs>] [\/verify] [\/continue]<\/inputs><\/type><\/span><strong><\/strong><\/span><\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Each parameter for the Configure command is explained in the table below.<\/span><\/span><\/p>\n<p style=\"text-align: center\">\n  \u00a0<strong><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Table of Configure Parameters<\/span><\/span><\/strong>\n<\/p>\n<div align=\"center\">\n<table class=\"Tablerowcell\" style=\"width: 547px\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<thead>\n<tr>\n<td valign=\"top\" width=\"93\">\n<p>\n            <strong><span style=\"font-family: Calibri\">Command<\/span><\/strong>\n          <\/p>\n<\/td>\n<td valign=\"top\" width=\"203\">\n<p>\n            <strong><span style=\"font-family: Calibri\">Behavior<\/span><\/strong>\n          <\/p>\n<\/td>\n<td valign=\"top\" width=\"126\">\n<p>\n            <span style=\"font-family: Calibri\"><strong>User Input<\/strong><\/span>\n          <\/p>\n<\/td>\n<td valign=\"top\" width=\"125\">\n<p>\n            <strong><span style=\"font-family: Calibri\">Required?<\/span><\/strong>\n          <\/p>\n<\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td valign=\"top\" width=\"93\">\n<p>\n            <span style=\"font-family: Calibri\">\/unattendfile:,<\/span>\n          <\/p>\n<p>\n            <span style=\"font-family: Calibri\">\/type:<\/span>\n          <\/p>\n<\/td>\n<td valign=\"top\" width=\"203\">\n<p>\n            <span style=\"font-family: Calibri\">Same behavior as in Create.<\/span>\n          <\/p>\n<p>\n            <span style=\"font-family: Calibri\">Unattendfile: the path for the .ini input file.<\/span>\n          <\/p>\n<p>\n            <span style=\"font-family: Calibri\">Type: The type of unattended configuration to run.<\/span>\n          <\/p>\n<p>\n            <span style=\"font-family: Calibri\">\u00a0<\/span>\n          <\/p>\n<\/td>\n<td valign=\"top\" width=\"126\">\n<p>\n            <span style=\"font-family: Calibri\">Specify a configuration file.<\/span>\n          <\/p>\n<p>\n            <span style=\"font-family: Calibri\">Specify one of the possible types.<\/span>\n          <\/p>\n<\/td>\n<td valign=\"top\" width=\"125\">\n<p>\n            <span style=\"font-family: Calibri\">Either the configuration file or the type is required, but only one may be specified.<\/span>\n          <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"93\">\n<p>\n            <span style=\"font-family: Calibri\">\/inputs:<\/span>\n          <\/p>\n<\/td>\n<td valign=\"top\" width=\"203\">\n<p>\n            <span style=\"font-family: Calibri\">Has the same syntax as in the Create command.\u00a0 When \u2018\/type\u2019 is specified, allows override of smart defaults; when \u2018\/unattendfile\u2019 is specified, overrides values in the file.<\/span>\n          <\/p>\n<\/td>\n<td valign=\"top\" width=\"126\">\n<p>\n            <span style=\"font-family: Calibri\"><key>=<value>, separated by semicolons<\/value><\/key><\/span>\n          <\/p>\n<\/td>\n<td valign=\"top\" width=\"125\">\n<p>\n            <span style=\"font-family: Calibri\">Optional<\/span>\n          <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"93\">\n<p>\n            <span style=\"font-family: Calibri\">\/verify<\/span>\n          <\/p>\n<\/td>\n<td valign=\"top\" width=\"203\">\n<p>\n            <span style=\"font-family: Calibri\">Stops the process after the verification checks; does not configure<\/span>\n          <\/p>\n<\/td>\n<td valign=\"top\" width=\"126\">\n<p>\n            <span style=\"font-family: Calibri\">No additional input<\/span>\n          <\/p>\n<\/td>\n<td valign=\"top\" width=\"125\">\n<p>\n            <span style=\"font-family: Calibri\">Optional<\/span>\n          <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"93\">\n<p>\n            <span style=\"font-family: Calibri\">\/continue<\/span>\n          <\/p>\n<\/td>\n<td valign=\"top\" width=\"203\">\n<p>\n            <span style=\"font-family: Calibri\">Overrides the default behavior of stopping configuration on a warning until user presses \u2018Enter.\u2019<\/span>\n          <\/p>\n<\/td>\n<td valign=\"top\" width=\"126\">\n<p>\n            <span style=\"font-family: Calibri\">No additional input<\/span>\n          <\/p>\n<\/td>\n<td valign=\"top\" width=\"125\">\n<p>\n            <span style=\"font-family: Calibri\">Optional<\/span>\n          <\/p>\n<p>\n            <span style=\"font-family: Calibri\">(Has no effect when \u2018\/verify\u2019 is also specified)<\/span>\n          <\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\u00a0<\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\"><span style=\"font-family: Arial\">Note: <\/span>In<\/span><\/span><span style=\"font-size: small\"><span style=\"font-family: Calibri\">\u00a0cases where the user intends to run a configuration without creating a configuration file to manage the inputs, it is strongly recommended to run \u2018\/verify\u2019 before proceeding with the full configuration.<\/span><\/span><\/p>\n<p>\u00a0<\/p>\n<h3><span style=\"font-size: small\">E<\/span><span style=\"font-size: small\">xamples:<\/span><\/h3>\n<p>\u00a0<span style=\"font-size: small\"><span style=\"font-family: Calibri\">Below are two examples of valid configuration commands.<\/span><\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;font-size: small\"><strong><span>:: Example 1<\/span><\/strong><\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;font-size: small\"><strong><span>:: Run readiness checks only on a configuration by type with 1 override<\/span><\/strong><\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;font-size: small\"><strong><span>tfsconfig unattend \/configure \/type:atonly \/inputs:UseSqlAlwaysOn=True \/verify<\/span><\/strong><\/span><\/p>\n<p>\u00a0<span style=\"font-family: terminal,monaco;font-size: small\"><strong><span>:: After viewing results of the checks, run configuration straight through<\/span><\/strong><\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;font-size: small\"><strong><span>tfsconfig unattend \/configure \/type:atonly \/inputs:UseSqlAlwaysOn=True \/continue<\/span><\/strong><\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: terminal,monaco;font-size: small\"><strong><span>:: Example 2<\/span><\/strong><\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;font-size: small\"><strong><span>:: \u201cconfigureatonly.ini\u201d has been made using \u201ctfsconfig unattend \/create\u2026\u201d<\/span><\/strong><\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;font-size: small\"><strong><span>:: Basic command to run a configuration by file<\/span><\/strong><\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;font-size: small\"><strong><span>tfsconfig unattend \/configure \/unattendfile:configureatonly.ini<\/span><\/strong><\/span><\/p>\n<p>\u00a0<\/p>\n<h3><span style=\"font-size: small\">Sample Output<\/span><\/h3>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">The screenshot below is sample output for a successful unattended Build configuration.\u00a0 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.\u00a0 A final message is displayed at the bottom stating whether or not the configuration completed successfully, followed by the file path to the event log for the process.\u00a0 <\/span><\/span><br \/>\n<span style=\"font-size: small\"><span style=\"font-family: Calibri\">If there had been any issues with the configuration process, warnings would be displayed in yellow and errors would be displayed in red.\u00a0 Warnings require the user\u2019s approval to continue with configuration unless \u2018\/continue\u2019 is specified.\u00a0 In the case that there are errors, configuration will not succeed.<\/span><\/span><br \/>\n<img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/10\/5086.Configure20Output.png\" alt=\"\" border=\"0\" \/><\/p>\n<h2>Feature Limitations<\/h2>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">There are a few scenarios that unattended installation does not currently support:<\/span><\/span><\/p>\n<ul>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Unattended install is only intended for use in on-premises scenarios.\u00a0 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).<\/span><\/span><\/li>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\">As stated above, the \u2018standard\u2019 and \u2018spextensions\u2019 processes do not install SharePoint automatically during unattended configuration.\u00a0 SharePoint must be installed separately using \u2018spinstall\u2019 before running these installations if it has not been installed already.<\/span><\/span><\/li>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Unattended install is available for Team Foundation Server Express; however, only the \u2018build\u2019 and \u2018basic\u2019 (where \u2018SqlInstance=SqlExpress\u2019) configuration types will succeed.\u00a0 Unattended install will block on configuration types that cannot be installed on the Express SKU, such as \u2018spinstall,\u2019 \u2018spextensions,\u2019 and \u2018proxy,\u2019 and will raise errors for the \u2018atonly\u2019 and \u2018Standard\u2019 configuration types, since TFS Express is only compatible with SQL Express.<\/span><\/span><\/li>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Reusing unattended configuration files across machines is not currently supported because configuration files use the machine name in certain default parameter values.\u00a0 It is a goal to improve this functionality in the future.\u00a0 In the meantime, users can write their own scripts to dynamically switch out the machine names in their configuration file to suit their needs.<\/span><\/span>\u00a0<\/li>\n<\/ul>\n<p>\u00a0<\/p>\n<div>\n<h2>\n    Other Resources\n  <\/h2>\n<\/div>\n<h3><span style=\"font-size: small\">Help Documentation<\/span><\/h3>\n<p class=\"DT\">\n  <span style=\"font-size: small\"><span style=\"font-family: Calibri\">Most of the information covered in this whitepaper is summarized in TFSConfig Help for user reference.\u00a0 This Help documentation lists the commands necessary to run an unattended install and includes all required and optional parameters for these commands.\u00a0 It also provides example commands and a description of each of the supported installation types.<\/span><\/span>\n<\/p>\n<p class=\"DT\">\n  <span style=\"font-size: small\"><span style=\"font-family: Calibri\">To access the Help documentation for this feature, navigate to the Tools folder in your TFS directory using the command prompt.\u00a0 If you installed Team Foundation Server to Program Files on your C: drive, the command will look like this:\u00a0 <\/span><\/span>\n<\/p>\n<p class=\"DL\">\n  <span style=\"font-family: terminal,monaco;font-size: small\"><strong>c<\/strong><strong>d C:Program<\/strong><strong><\/strong><strong>FilesMicrosoft Team Foundation Server 11.0Tools<\/strong><\/span>\n<\/p>\n<p class=\"DT\">\n  <span style=\"font-family: Calibri;font-size: small\">Once you have navigated to the appropriate location, type: <\/span><span style=\"font-family: terminal,monaco;font-size: small\"><strong>tfsconfig help unattend<\/strong><\/span>\n<\/p>\n<p class=\"DL\">\n  <span style=\"font-size: small\"><span style=\"font-family: Calibri\">The following page contains a screenshot of the information that should appear.<\/span><\/span>\n<\/p>\n<p>\u00a0<img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2012\/10\/6786.Help20Output.png\" alt=\"\" border=\"0\" \/><\/p>\n<p>Again, although not listed\u00a0here as a valid type, unattended &#8220;upgrade&#8221;\u00a0is also supported.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This post instructs you on how to run an unattended installation of Team Foundation Server, a new feature to TFS 2012.\u00a0 There is another copy of this post located here, on the TFS Setup, Administration, and Operations blog. **Note: **As nothing in this area has changed for TFS 2013, the title of this document has [&hellip;]<\/p>\n","protected":false},"author":66,"featured_media":45953,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4203","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops"],"acf":[],"blog_post_summary":"<p>This post instructs you on how to run an unattended installation of Team Foundation Server, a new feature to TFS 2012.\u00a0 There is another copy of this post located here, on the TFS Setup, Administration, and Operations blog. **Note: **As nothing in this area has changed for TFS 2013, the title of this document has [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/4203","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/users\/66"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/comments?post=4203"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/4203\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media\/45953"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media?parent=4203"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/categories?post=4203"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/tags?post=4203"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}