Deploy an agent on Windows for TFS 2015
TFS 2015 | TFS 2013
To build and deploy Windows, Azure, and other Visual Studio solutions you may need a Windows agent. Windows agents can also build and deploy Java and Android apps.
Before you begin:
- If you use Azure Pipelines or TFS 2017 and newer, then you need to use a newer agent. See Deploy an agent on Windows.
- If you use TFS, you might already have a build and release agent running. An agent is automatically or optionally deployed in some cases when you set up Team Foundation Server.
- Otherwise, you've come to the right place to set up an agent on Windows for TFS 2015. Continue to the next section.
Learn about agents
If you already know what an agent is and how it works, feel free to jump right in to the following sections. But if you'd like some more background about what they do and how they work, see Azure Pipelines agents.
Check prerequisites
Before you begin, make sure your agent machine is prepared with these prerequisites:
An operating system that is supported by Visual Studio 2013 or newer
Visual Studio 2013 or Visual Studio 2015
PowerShell 3 or newer (Where can I get a newer version of PowerShell?)
Download and configure the agent
Make sure you're logged on the machine as an agent pool administrator. See Agent pools.
Navigate to the Agent pools tab:
http://{your_server}:8080/tfs/_admin/_AgentPool
Click Download agent.
Unzip the .zip file into the folder on disk from which you would like to run the agent. To avoid "path too long" issues on the file system, keep the path short. For example:
C:\Agent\
Run Command Prompt as Administrator, and then run:
ConfigureAgent.cmd
Respond to the prompts.
Choose interactive or service mode
For guidance on whether to run the agent in interactive mode or as a service, see Agents: Interactive vs. service.
Run as a service
If you chose to run the agent as a Windows service, then the agent running status can be controlled from the Services snap-in. Run services.msc and look for "VSO Agent (<name of your agent>)".
If you need to change the logon account, don't do it from the services snap-in. Instead, from an elevated Command Prompt, run:
C:\Agent\Agent\VsoAgent.exe /ChangeWindowsServiceAccount
Run interactively
If you chose to run interactively, then to run the agent:
C:\Agent\Agent\VsoAgent.exe
Command-line parameters
You can use command-line parameters when you configure the agent (ConfigureAgent.cmd
) and when you run the agent (Agent\VsoAgent.exe
). These are useful to avoid being prompted during unattended installation scripts and for power users.
Common parameters
/Login:UserName,Password[;AuthType=(AAD|Basic|PAT)]
Used for configuration commands against an Azure DevOps organization. The parameter is used to specify the pool administrator credentials. The credentials are used to perform the pool administration changes and are not used later by the agent.
When using personal access tokens (PAT) authentication type, specify anything for the user name and specify the PAT as the password.
If passing the parameter from PowerShell, be sure to escape the semicolon or encapsulate the entire argument in quotes. For example: '/Login:user,password;AuthType=PAT'. Otherwise the semicolon will be interpreted by PowerShell to indicate the end of one statement and the beginning of another.
/NoPrompt
Indicates not to prompt and to accept the default for any values not provided on the command-line.
/WindowsServiceLogonAccount:WindowsServiceLogonAccount
Used for configuration commands to specify the identity to use for the Windows service. To specify a domain account, use the form Domain\SAMAccountName or the user principal name (for example user@fabrikam.com). Alternatively a built-in account can be provided, for example /WindowsServiceLogonAccount:"NT AUTHORITY\NETWORK SERVICE".
/WindowsServiceLogonPassword:WindowsServiceLogonPassword
Required if the /WindowsServiceLogonAccount parameter is provided.
/Configure
Configure supports the /NoPrompt switch for automated installation scenarios and will return a non-zero exit code on failure.
For troubleshooting configuration errors, detailed logs can be found in the _diag folder under the agent installation directory.
/ServerUrl:ServerUrl
The server URL should not contain the collection name. For example, http://example:8080/tfs
or https://dev.azure.com/example
/Name:AgentName
The friendly name to identify the agent on the server.
/PoolName:PoolName
The pool that will contain the agent, for example: /PoolName:Default
/WorkFolder:WorkFolder
The default work folder location is a _work folder directly under the agent installation directory. You can change the location to be outside of the agent installation directory, for example: /WorkFolder:C:_work. One reason you may want to do this is to avoid "path too long" issues on the file system.
/Force
Replaces the server registration if a conflicting agent exists on the server. A conflict could be encountered based on the name. Or a conflict could be encountered if based on the ID a previously configured agent is being reconfigured in-place without unconfiguring first.
/NoStart
Used when configuring an interactive agent to indicate the agent should not be started after the configuration completes.
/RunningAsService
Used to indicate the agent should be configured to run as a Windows service.
/StartMode:(Automatic|Manual|Disabled)
/ChangeWindowsServiceAccount
Change Windows service account supports the /NoPrompt switch for automated installation scenarios and will return a non-zero exit code on failure.
For troubleshooting errors, detailed logs can be found in the _diag folder under the agent installation directory.
/Unconfigure
/Version
Prints the version number.
/?
Prints usage information.
Capabilities
Your agent's capabilities are cataloged and advertised in the pool so that only the builds and releases it can handle are assigned to it. See Build and release agent capabilities.
In many cases, after you deploy an agent, you'll need to install software or utilities. Generally you should install on your agents whatever software and tools you use on your development machine.
For example, if your build includes the npm task, then the build won't run unless there's a build agent in the pool that has npm installed.
Important
Capabilities include all environment variables and the values that are set when the agent runs. If any of these values change while the agent is running, the agent must be restarted to pick up the new values. After you install new software on an agent, you must restart the agent for the new capability to show up in the pool, so that the build can run.
If you want to exclude environment variables as capabilities, you can designate them by setting an environment variable VSO_AGENT_IGNORE
with a comma-delimited list of variables to ignore.
FAQ
What version of PowerShell do I need? Where can I get a newer version?
The Windows Agent requires PowerShell version 3 or later. To check your PowerShell version:
$PSVersionTable.PSVersion
If you need a newer version of PowerShell, you can download it:
- PowerShell 3: Windows Management Framework 3.0
- PowerShell 5: Windows Management Framework 5.0
Why do I get this message when I try to queue my build?
When you try to queue a build or a deployment, you might get a message such as: "No agent could be found with the following capabilities: msbuild, visualstudio, vstest." One common cause of this problem is that you need to install prerequisite software such as Visual Studio on the machine where the build agent is running.
What version of the agent runs with my version of TFS?
TFS version | Agent version |
---|---|
2015 RTM | 1.83.2 |
2015.1 | 1.89.0 |
2015.2 | 1.95.1 |
2015.3 | 1.95.3 |
Can I still configure and use XAML build controllers and agents?
Yes. If you are an existing customer with custom build processes you are not yet ready to migrate, you can continue to use XAML builds, controllers, and agents.
I use TFS on-premises and I don't see some of these features. Why not?
Some of these features are available only on Azure Pipelines and not yet available on-premises. Some features are available on-premises if you have upgraded to the latest version of TFS.