使用 TFSConfig 在本地管理 Azure DevOps

Azure DevOps Server 2022 |Azure DevOps Server 2020 |Azure DevOps Server 2019 |TFS 2018

可以使用 TFSConfig 命令行工具为 Azure DevOps 本地部署执行各种管理操作。

可以从安装Azure DevOps Server的任何计算机运行 TFSConfig

命令行工具位置

Azure DevOps 命令行工具安装在 Azure DevOps 应用程序层服务器的 /Tools 目录中。

  • Azure DevOps Server 2020:%programfiles%\Azure DevOps Server 2020\Tools
  • Azure DevOps Server 2019:%programfiles%\Azure DevOps Server 2019\Tools
  • TFS 2018: %programfiles%\Microsoft Team Foundation Server 2018\Tools
  • TFS 2017: %programfiles%\Microsoft Team Foundation Server 15.0\Tools
  • TFS 2015: %programfiles%\Microsoft Team Foundation Server 14.0\Tools
  • TFS 2013: %programfiles%\Microsoft Team Foundation Server 12.0\Tools
  • TFS 2012: %programfiles%\Microsoft Team Foundation Server 11.0\Tools
  • TFS 2010: %programfiles%\Microsoft Team Foundation Server 2010\Tools

先决条件

要使许多命令正常运行, TFSConfig 需要能够连接到属于 TFS 部署的各个服务器和服务,并且运行 TFSConfig 的用户需要对这些相同的服务器和服务具有管理权限。 下面将调用特定命令的要求。

即使正在运行的用户具有管理凭据,也必须从提升的命令提示符运行许多 TFSConfig 命令。 若要打开提升的命令提示符,请单击“开始”,右键单击命令提示符,然后单击“以管理员身份运行”。 有关详细信息,请参阅: 用户帐户控制

还可以使用管理控制台以交互方式执行管理操作,以便Azure DevOps Server。 请参阅 管理任务快速参考

列出命令并获取帮助

若要显示 TFSConfig 命令的完整列表,请使用 帮助 命令:

TFSConfig help

若要获取单个命令的帮助,请使用 帮助 命令并指定需要帮助的命令的名称。 例如,若要获取 有关帐户 命令的帮助,

TFSConfig help accounts

帐户

使用 accounts 命令管理这些Azure DevOps Server服务帐户。

  • Azure DevOps Server服务帐户
  • SQL Server Reporting Services的数据源帐户
  • Azure DevOps 代理服务器服务帐户

还可以使用此命令更改Azure DevOps Server数据库的所有权。

TfsConfig accounts /change|add|set|delete|updatepassword|resetowner
	[/accountType:<adminConsole|applicationTier|proxy|reportingDataSource>]
	[/account:<accountName>] [/password:<password>]
	[/sqlInstance:<serverName>] [/databaseName:<databaseName>] [/continue]
操作 说明
UpdatePassword 更改用作服务帐户的帐户的密码。 更改作为给定帐户运行的现有帐户和所有 accountType。
更改 更改用作服务帐户的帐户。 将新帐户添加到必要的资源和组,授予所需的权限,然后设置要使用的服务。 这不会从资源中删除旧帐户。

如果不使用 accountType 选项,则会更改应用程序层的服务帐户。
添加 仅将新帐户添加到所需的资源。 适用于 NLB 方案。 如果某些集合无法访问,请使用继续标志。 稍后可以再次运行添加以更新任何错过的集合。 将帐户添加到将帐户用作服务帐户所需的组。
设置 仅设置服务以使用已添加到资源的帐户。 适用于 NLB 方案。
删除 从所有资源中删除帐户。 删除帐户时应使用预防措施,因为它可能导致其他服务器被拒绝服务。
ResetOwner 如果数据库在移动、克隆或灾难恢复过程中还原,数据库所有者可以切换到还原服务器的管理员。 此选项循环访问所有数据库,并将 dbo 登录名设置为当前所有者。
AccountType 描述
AdminConsole 管理控制台用户是已授予跨各种资源使用控制台的最低权限的用户。
ApplicationTier 更改核心 Web 服务的 appPool 上的服务帐户。 (TFSService)
代理 更改代理 Web 服务的 appPool 上的服务帐户。 (TFSProxy)
ReportingDataSource 更改报表用于访问报告数据的帐户。 (TFSReports)

默认值为 ApplicationTier

sqlInstance 和 databaseName 仅适用于在配置应用程序层之前将帐户添加到数据库时使用。 这主要适用于灾难恢复方案,即在运行 AT 仅配置向导之前需要另一个帐户。

添加或更改帐户时,将使用“继续”选项。 对于这些操作,每个集合数据库中的帐户都会更改。 如果提供继续,则如果集合无法访问,它将继续。 当可以访问时,可以再次运行它。

注意

帐户必须采用 domainName\userName 格式。 对于系统帐户,必须使用完整帐户名称 (引号,例如“NT Authority\Network Service”) 。 系统帐户不需要密码。

参数 描述
帐户 指定要从引用的帐户类型(如 /AccountType:ApplicationTier)添加、更改或删除的帐户的名称。
密码 指定服务帐户的密码。 如果使用没有密码的系统帐户或帐户(如 Network Service),则此参数是可选的。
sqlInstance 仅用于 /ResetOwner

如果要使用默认实例以外的实例,请指定运行SQL Server的服务器的名称和实例的名称。 必须采用以下格式指定名称和实例:

ServerName\InstanceName。
databaseName 仅用于 /ResetOwner

指定要更改其所有权的数据库的名称。 通过使用此命令,可将指定的数据库的所有权重置为在其下运行命令的帐户。
continue 更新在运行命令时不可用的任何组。 此选项通常用于 NLB 方案。

先决条件

若要使用 accounts 命令,你必须是:

  • Azure DevOps 管理员安全组
  • Azure DevOps Server实例使用的所有SQL Server实例的 sysadmin 角色。

如果使用 /proxy 选项,则必须是代理服务器上的管理员。

有关详细信息,请参阅Azure DevOps Server的权限参考

备注

使用 accounts 命令自动更改Azure DevOps Server的服务帐户、数据库和服务帐户组。 可以配置已创建的帐户,但无法创建帐户。

在更改帐户的域或工作组之前,该帐户必须具有该帐户是敏感的,并且不能在应用程序层服务器上委派权限。 有关详细信息,请参阅 Microsoft 网站上的此页面: 启用委派身份验证

accounts 命令支持本地Azure DevOps Server部署。 若要更改Azure DevOps Services帐户的帐户所有者,请参阅“更改帐户所有权”。

示例

将Reporting Services数据源的服务帐户更改为 Contoso 域中的新帐户,Contoso\NewAccount并将密码更改为Password

TfsConfig accounts /change /AccountType:ReportingDataSource /Account:Contoso\NewAccount /Password:Password

将网络服务系统帐户添加到Azure DevOps Server (系统帐户的服务帐户组没有密码) 。

TfsConfig accounts /add /AccountType:ApplicationTier /Account:"NT Authority\Network Service"

将命名实例中TeamDatabasesSQL Server的数据库ContosoMain所有权TFS_Warehouse更改为运行命令的用户帐户。

注意

使用此命令时,无法指定要设置为数据库所有者的帐户。 所有者将设置为在其下运行命令的帐户。

TfsConfig accounts /ResetOwner /SQLInstance:ContosoMain\TeamDatabases /DatabaseName:TFS_Warehouse

使用 “帐户” 命令管理这些 TFS 服务帐户。

  • TFS 服务帐户
  • SQL Server Reporting Services的数据源帐户
  • Azure DevOps 代理服务器服务帐户

还可以使用此命令更改Azure DevOps Server数据库的所有权。

TFSConfig Accounts /change|add|set|delete|updatepassword|resetowner
[/AccountType:{AdminConsole|ApplicationTier|Proxy|ReportingDataSource}]
[/Account:AccountName] [/Password:Password]
[/SQLInstance:ServerName] [/DatabaseName:DatabaseName] [/Continue] [/usesqlalwayson]

选项

描述

/change

更改用作服务帐户的帐户。

此选项将你指定的帐户添加到所有必需的组,如果可能,请向其授予先决条件,并将服务设置为使用帐户。

如果不将 /AccountType 选项与此选项一起使用,将更改应用程序层的服务帐户。

/add

将帐户添加到将帐户用作服务帐户所需的组。

此选项将指定的帐户添加到所需组,并向它授予充当服务帐户所需的权限(如果可能)。

但是,此选项不会更改用作服务帐户的帐户。

此选项通常用于网络负载平衡 (NLB) 方案。

如果某些服务或数据库可能在环境中不可用,则可以将此选项与 /continue 一起使用。

/set

将帐户设置为服务帐户。 此选项不会将帐户添加到任何组。

因此,必须仅将此选项用于已添加到所需组并具有所需权限的帐户。

此选项通常用于 NLB 方案。

/delete

从指定的帐户类型中移除帐户。

此选项从所需组中移除指定的帐户,并移除充当服务帐户所需的权限(如果可能)。

但是,此选项不会更改用作服务帐户的帐户。

请确保不对部署中的服务器当前用作服务帐户的帐户使用此选项。

/ResetOwner

更改Azure DevOps Server用于运行此命令的帐户的数据库的所有权。

此选项循环访问所有数据库,并将 dbo 登录名设置为用于运行此命令的帐户。

可能需要在移动或还原部署时使用此选项。

/UpdatePassword

更改用作服务帐户的帐户的密码。

此选项更新为使用该帐户Azure DevOps Server中所有服务指定的帐户的密码。

/AccountType: { AdminConsole |ApplicationTier |ReportingDataSource |Proxy }

  • AdminConsole:具有打开和使用 Azure DevOps (AdminConsole) 的管理控制台所需的最低权限的用户组
  • ApplicationTier:用于Azure DevOps Server (TFSService) 的服务帐户
  • ReportingDataSource:Reporting Services (TFSReports) 的数据源帐户
  • 代理:Azure DevOps Server代理 (TFSProxy) 的服务帐户

默认值为 ApplicationTier。

/Account: AccountName

指定要从引用的帐户类型(如 /AccountType:ApplicationTier)添加、更改或删除的帐户的名称。

以下列形式之一指定帐户:Domain\AccountName 或 Computer\AccountName。

如果要使用系统帐户(如 Network Service 或 Local System),请使用 Computer\AccountName 格式。

有关如何指定系统帐户的详细信息,请参阅本主题中后面的用法示例。

/Password: 密码

指定服务帐户的密码。

注意: 如果使用系统帐户或没有密码的帐户(例如网络服务),则此参数是可选的。

/SQLInstance: ServerName

仅用于 /ResetOwner

指定运行SQL Server的服务器的名称,如果想要使用默认实例以外的实例,则指定实例的名称。

必须采用以下格式指定名称和实例:

ServerName\InstanceName。

/DatabaseName: DatabaseName

仅用于 /ResetOwner

指定要更改其所有权的数据库的名称。

通过使用此命令,可将指定的数据库的所有权重置为在其下运行命令的帐户。

/continue

更新在运行命令时不可用的任何组。 此选项通常用于 NLB 方案。

/usesqlalwayson

仅用于 /ResetOwner/SQLInstance/DatabaseName

指定数据库是SQL Server中Always On可用性组的一部分。

配置后,此选项将在连接字符串中设置 MultiSubnetFailover。

有关详细信息,请参阅 [Always On可用性组 (SQL Server) ] (/sql/database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server。

先决条件

To use the Accounts command, you must be a member of

  • Team Foundation Administrators 安全组
  • Azure DevOps Server实例使用的所有SQL Server实例的 sysadmin 角色。

如果使用 /proxy 选项,则必须是代理服务器上的管理员。

有关详细信息,请参阅Azure DevOps Server>的权限参考

备注

使用“帐户”命令自动更改Azure DevOps Server的服务帐户、数据库和服务帐户组。 可以配置已创建的帐户,但无法创建帐户。

在更改帐户的域或工作组之前,该帐户必须具有该帐户是敏感的,并且不能在应用程序层服务器上委派权限。 有关详细信息,请参阅 Microsoft 网站上的此页面: 启用委派身份验证

Accounts 命令支持本地Azure DevOps Server部署。 若要更改Azure DevOps Services帐户的帐户所有者,请参阅“更改帐户所有权”。

示例

将Reporting Services数据源的服务帐户更改为 Contoso 域、Contoso\NewAccount 和密码中的新帐户。

TFSConfig Accounts /change /AccountType:ReportingDataSource /Account:Contoso\NewAccount /Password:Password

将网络服务系统帐户添加到Azure DevOps Server的服务帐户组。 (系统帐户没有密码。)

TFSConfig Accounts /add /AccountType:ApplicationTier /Account:"NT Authority\Network Service"

将“TeamDatabases”命名实例中“ContosoMain”SQL Server“TFS_Warehouse”数据库的所有权更改为运行命令的用户帐户。

注意

使用此命令时,无法指定要设置为数据库所有者的帐户。 所有者将设置为在其下运行命令的帐户。

TFSConfig Accounts /ResetOwner /SQLInstance:ContosoMain\TeamDatabases /DatabaseName:TFS_Warehouse

AddProjectReports

注意

addProjectReports 命令适用于 TFS 2017.1 及更高版本。

使用 addProjectReports 命令添加或覆盖现有团队项目的报表。

TfsConfig addProjectReports /collection:<teamProjectCollectionUrl> /teamProject:<projectName> /template:<templateName>
[/force]
选项 说明
collection 必需。 团队项目集合的 URL。
teamproject 必需。 指定团队项目的名称。
template 必需。 指定进程模板的名称。 可用选项包括敏捷、CMMI 和 Scrum。
force 可选。 指定报表应覆盖(如果已存在)。

先决条件

若要使用 addProjectReports 命令,必须有权运行 TFSConfig 并将 报表上传到 Reporting Service

备注

当项目没有报表或想要更新为进程定义的报表时,可以使用 addProjectReports 命令。

在以下情况下,可能需要使用此命令:

  • 该项目是在 Azure DevOps 门户中创建的,而不是从 Visual Studio 创建的
  • 项目是从 Visual Studio 创建的,但报表未在Azure DevOps Server中配置。

如果要使用默认报表覆盖项目中的报表,因为升级了项目中的Azure DevOps Server和旧报表不再兼容,请使用 /force 选项。 如果已自定义报表,请在执行此操作之前进行备份。

若要详细了解如何将报表添加到本地Azure DevOps Server,请参阅向项目添加报表

示例

以下示例演示如何将敏捷报表添加到 MyProject 项目集合中的 http://myTfsServer:8080/tfs/DefaultCollection 项目。

TFSConfig addProjectReports /collection:http://myTfsServer:8080/tfs/DefaultCollection /teamproject:MyProject /template:Agile

使用 AddProjectReports 命令添加或覆盖现有项目的报表。

TfsConfig addProjectReports
/collection:teamProjectCollectionUrl
/teamProject:projectName
/template:templateName
[/force]

选项

说明

/collection

必需。 项目集合的 URL。

/teamProject

必需。 指定项目的名称。

/template

必需。 指定进程模板的名称。 可用选项包括敏捷、CMMI 和 Scrum

/force

可选。 指定报表应覆盖(如果已存在)。

先决条件

若要使用 AddProjectReports 命令,必须有权运行 TFSConfig 并将 报表上传到 Reporting Service

备注

当项目没有报表或想要更新为进程定义的报表时,可以使用 AddProjectReports 命令。

在以下情况下,可能需要使用此命令:

  • 项目是在 Web 门户中创建的,而不是从 Visual Studio 创建的
  • 项目是从 Visual Studio 创建的,但在Azure DevOps Server中未配置报告。

如果要使用默认报表覆盖项目中的报表,因为升级了项目中的Azure DevOps Server和旧报表不再兼容,请使用 /force 选项。 如果已自定义报表,请在执行此操作之前进行备份。

若要详细了解如何将报表添加到本地Azure DevOps Server,请参阅向项目添加报表

示例

以下示例演示如何将敏捷报表添加到项目集合中的 http://myTfsServer:8080/tfs/DefaultCollectionMyProject 项目。

TFSConfig addprojectreports /collection:http://myTfsServer:8080/tfs/DefaultCollection /teamproject:MyProject /template:Agile

身份验证

身份验证命令更改Azure DevOps Server应用程序层或代理网站使用的网络身份验证协议。

TFSConfig Authentication [/provider:NTLM|Negotiate] [/viewAll] [/siteType:ApplicationTier|Proxy]

选项

说明

/viewAll

显示Azure DevOps Server的当前身份验证设置。

/provider: { NTLM |Negotiate }

指定要为网站配置的身份验证提供程序。

  • NTLM:使用 NTML 身份验证协议
  • 协商:使用 Negotiate (Kerberos) 身份验证协议

/siteType

指定要更改其网络身份验证协议的网站 (应用程序层或代理) 。 应用程序层是默认值。

先决条件

若要使用 “身份验证 ”命令,你必须是 Azure DevOps 管理员安全组的成员,并且是应用程序层服务器或代理服务器上的本地管理员,具体取决于 siteType 选项的值。

备注

身份验证命令由想要更改Azure DevOps Server所依赖的一个或多个网站的网络身份验证协议的管理员使用。 管理员从应用层运行此命令以更新需要更改其网络身份验证协议的网站。 该命令更改 IIS 元数据库中 的 NTAuthenticationProviders 属性。

在使用 “身份验证 ”命令更改身份验证协议之前,可以使用 /viewAll 选项运行该命令以查看现有设置是什么。

示例

下面的示例显示为网络身份验证协议分配的当前值。

TFSConfig Authentication /viewAll

身份验证命令更改 TFS 应用程序层或代理网站使用的网络身份验证协议。

TFSConfig Authentication [/provider:NTLM|Negotiate] [/viewAll] [/siteType:ApplicationTier|Proxy]

选项

说明

/viewAll

显示Azure DevOps Server的当前身份验证设置。

/provider: { NTLM |Negotiate }

指定要为网站配置的身份验证提供程序。

  • NTLM:使用 NTML 身份验证协议
  • 协商:使用 Negotiate (Kerberos) 身份验证协议

/siteType

指定要更改其网络身份验证协议的网站 (应用程序层或代理) 。 应用程序层是默认值。

先决条件

若要使用 “身份验证 ”命令,你必须是 Team Foundation Administrators 安全组的成员和应用程序层服务器或代理服务器上的本地管理员,具体取决于 siteType 选项的值。

备注

身份验证命令由想要更改Azure DevOps Server所依赖的一个或多个网站的网络身份验证协议的管理员使用。 管理员从应用层运行此命令以更新需要更改其网络身份验证协议的网站。 该命令更改 IIS 元数据库中 的 NTAuthenticationProviders 属性。

在使用 “身份验证 ”命令更改身份验证协议之前,可以使用 /viewAll 选项运行该命令以查看现有设置是什么。

示例

下面的示例显示为网络身份验证协议分配的当前值。

TFSConfig Authentication /viewAll

证书

使用 certificates 命令更改证书在部署 Azure DevOps Server利用 HTTPS、安全套接字层 (SSL) 和证书的部署中为客户端身份验证配置证书的方式。

TfsConfig certificates [/machine] [/disable] [/autoSelect] [/noprompt] [/thumbprints:thumbprint1[,thumbprint2,...]]
选项 描述
计算机 指定证书列表将来自本地计算机上下文,而不是当前用户上下文。
disable 指定将禁用客户端身份验证证书设置。
autoSelect 指定将从证书列表中自动选择证书。 “管理客户端证书”窗口不会打开。
noprompt 指定运行“证书”命令时,“管理客户端证书”窗口不会打开。
指纹 指定将使用与指定指纹匹配的证书。 可以通过用逗号分隔单个指纹来指定多个证书。

先决条件

若要使用 证书 命令,你必须是 Azure DevOps Administrators 安全组的成员,并且必须是运行该命令的计算机上的本地管理员组的成员。 有关详细信息,请参阅Azure DevOps Server的权限参考

备注

默认情况下, certificates 命令将自动从当前用户的证书列表中选择客户端证书。 但是,可以使用命令的选项从当前用户上下文或本地计算机上下文指定特定的证书或证书。

在使用证书命令之前,必须先在部署Azure DevOps Server中配置服务器以利用证书。 有关详细信息,请参阅为Azure DevOps Server设置具有安全套接字层的 HTTPS (SSL)

使用 certificates 命令配置已配置为使用 HTTPS/SSL 和证书的Azure DevOps Server部署使用的客户端证书。 如果使用没有选项的 Certificates 命令,将从运行该命令的当前用户上下文中自动选择客户端证书。

示例

以下示例演示如何指定具有指纹 aa bb cc dd ee 且没有提示的本地计算机证书。

TfsConfig certificates /machine /thumbprint:aa bb cc dd ee /noprompt

以下示例演示如何使用当前用户存储中的客户端证书的自动选择。

TfsConfig certificates /autoselect

使用 Certificates 命令更改证书在部署利用 HTTPS、安全套接字层 (SSL) 和证书的 Azure DevOps Server部署中为客户端身份验证配置证书的方式。

TFSConfig Certificates [/machine] [/disable] [/autoSelect] [/noprompt] [/thumbprints:thumbprint1[,thumbprint2,...]]

选项

说明

/machine

指定证书列表将来自本地计算机上下文,而不是当前用户上下文。

/disable

指定将禁用客户端身份验证证书设置。

/autoSelect

指定将从证书列表中自动选择证书。 “管理客户端证书”窗口不会打开。

/noprompt

指定运行“证书”命令时,“管理客户端证书”窗口不会打开。

/thumbprints:指纹

指定将使用与指定指纹匹配的证书。 可以通过用逗号分隔单个指纹来指定多个证书。

先决条件

若要使用 “证书” 命令,你必须是 Team Foundation Administrators 安全组的成员,并且必须是运行该命令的计算机上的本地管理员组的成员。 有关详细信息,请参阅Azure DevOps Server的权限参考

备注

默认情况下, “证书 ”命令将自动从当前用户的证书列表中选择客户端证书。 但是,可以使用命令的选项从当前用户上下文或本地计算机上下文指定特定的证书或证书。

在使用 Certificates 命令之前,必须先在部署Azure DevOps Server中配置服务器以利用证书。 有关详细信息,请参阅为Azure DevOps Server设置具有安全套接字层的 HTTPS (SSL)

使用 Certificates 命令配置已配置为使用 HTTPS/SSL 和证书的Azure DevOps Server部署使用的客户端证书。 如果使用没有选项的 Certificates 命令,将从运行该命令的当前用户上下文中自动选择客户端证书。

示例

以下示例演示如何指定指纹为“aa bb cc dd ee”且没有提示的本地计算机证书。

TFSConfig Certificates /machine /thumbprint:aa bb cc dd ee /noprompt

以下示例演示如何使用当前用户存储中的客户端证书的自动选择。

TFSConfig Certificates /autoselect

ChangeServerID

changeServerID 命令更改与Azure DevOps Server数据库关联的 GUID。 GUID 在部署Azure DevOps Server中必须是唯一的。 如果多个数据库具有相同的 GUID,则部署可能会变得不稳定或不可用。 可以更改配置数据库的 GUID、部署中所有项目集合数据库的 GUID 或两者。

虽然通常不会在日常操作中使用此命令,但在以下情况下,可以使用此命令:

  • 已将部署还原到新硬件,旧部署仍可正常运行,并且想要同时使用这两个部署。 此方案有时称为克隆服务器。

  • 想要在重复部署上测试软件更新或硬件配置,以免中断生产环境。

  • 想要在测试实验室或单独的环境中全面测试数据库还原到新硬件,以确保可以还原部署。

  • 将集合数据库的 GUID 移动到已为其保留该 GUID 的另一个部署后,必须重置该 GUID 的 GUID。

注意

changeServerID 命令不可逆。 GUID 更改后,除了还原该数据库的早期版本外,无法撤消该更改。

TfsConfig changeServerID /sqlInstance:<serverName> /databaseName:<configurationDatabaseName>
	[/projectCollectionsOnly] [/configDBOnly] [/collectionName]
选项 描述
sqlInstance 必需。 如果要使用默认实例以外的实例,请指定运行SQL Server的服务器的名称和实例的名称。 如果指定实例,则必须使用以下格式: ServerName\InstanceName
databaseName 必需。 指定Azure DevOps Server的配置数据库的名称。 默认情况下,此数据库的名称为 TFS_ConfigurationDB。
projectCollectionsOnly 指定仅更改集合的 GUID。
configDBOnly 指定仅更改配置数据库的 GUID。
collectionName 指定为特定集合创建新的实例 ID,但不为 Azure DevOps 实例和其他集合创建新实例 ID。

先决条件

若要使用 changeServerID 命令,你必须是 Azure DevOps Administrators 安全组的成员,并且必须是Azure DevOps Server使用的所有SQL Server实例的 sysadmin 安全角色的成员。 有关详细信息,请参阅 Azure DevOps 的权限参考

备注

可以使用 changeServerID 命令创建Azure DevOps Server部署的离散副本,以便进行测试或克隆。 使用 changeServerID 命令后,必须将客户端定向到已更改的服务器创建连接,然后才能使用它。

示例

以下示例演示如何更改 contoso1 部署Azure DevOps Server中所有数据库的 GUID,其中配置数据库托管在SQL Server命名实例TeamDatabases上的服务器上ContosoMain

TfsConfig changeServerID /SQLInstance:ContosoMain\TeamDatabases /DatabaseName:TFS_ConfigurationDB

ChangeServerID 命令更改与 TFS 数据库关联的 GUID。 在部署 TFS 时,GUID 必须是唯一的。 如果多个数据库具有相同的 GUID,则部署可能会变得不稳定或不可用。 可以更改配置数据库的 GUID、部署中所有项目集合数据库的 GUID 或两者。 尽管通常不会在日常操作中使用此命令,但在以下情况下,可以使用此命令:

  • 已将部署还原到新硬件,旧部署仍可正常运行,并且想要同时使用这两个部署。 此方案有时称为克隆服务器。

  • 你想要在重复部署上测试软件更新或硬件配置,以免中断生产环境。

  • 你想要在测试实验室或单独的环境中全面测试数据库还原到新硬件,以确保可以还原部署。

  • 将集合数据库移动到已为其保留该 GUID 的另一个部署后,必须重置集合数据库的 GUID。

    注意

    ChangeServerID 命令不可逆。 更改 GUID 后,除了还原该数据库的早期版本之外,无法撤消该更改。

    TFSConfig ChangeServerID /SQLInstance:ServerName /DatabaseName:ConfigurationDatabaseName [/ProjectCollectionsOnly] [/ConfigDBOnly] [/usesqlalwayson]

选项

说明

/SQLInstance: ServerName

必需。 指定运行SQL Server的服务器的名称,如果想要使用默认实例以外的实例,则指定实例的名称。 如果指定实例,则必须使用以下格式: ServerName\InstanceName

/DatabaseName: DatabaseName

必需。 指定Azure DevOps Server的配置数据库的名称。 默认情况下,此数据库的名称为 TFS_ConfigurationDB。

/ProjectCollectionsOnly

指定仅更改集合的 GUID。

/ConfigDBOnly

指定仅更改配置数据库的 GUID。

/usesqlalwayson

指定数据库是SQL Server中Always On可用性组的一部分。 配置后,此选项将在连接字符串中设置 MultiSubnetFailover。

有关详细信息,请参阅 Always On 可用性组 (SQL Server)

先决条件

若要使用 ChangeServerID 命令,你必须是 Team Foundation Administrators 安全组的成员,并且是Azure DevOps Server使用的所有SQL Server实例的 sysadmin 安全角色的成员。 有关详细信息,请参阅 Azure DevOps 的权限参考

备注

可以使用 ChangeServerID 命令创建Azure DevOps Server部署的离散副本,以便进行测试或克隆。 使用 ChangeServerID 命令后,必须先指示客户端创建与已更改服务器的连接,然后才能使用它。

示例

以下示例演示如何更改 contoso1 部署Azure DevOps Server中所有数据库的 GUID,其中配置数据库托管在SQL Server命名实例“TeamDatabases”上的服务器上名为“ContosoMain”。

TFSConfig ChangeServerID /SQLInstance:ContosoMain\TeamDatabases /DatabaseName:TFS_ConfigurationDB

CodeIndex

使用 codeIndex 命令管理Azure DevOps Server上的代码索引。 例如,你可能希望重置该索引以修复 CodeLens 信息,或关闭索引以调查服务器性能问题。

TfsConfig codeIndex /indexingStatus | /setIndexing:[on|off|keepupOnly] |
	/ignoreList:[ add | remove | removeAll | view ] <serverPath> |
	/listLargeFiles [/fileCount:FileCount] [/minSize:MinSize] |
	/reindexAll | 
    /destroyCodeIndex [/noPrompt] |
	/temporaryDataSizeLimit:[ view | <SizeInGBs> | disable ] |
	/indexHistoryPeriod:[ view | all | <NumberOfMonths> ] [/collectionName:<collectionName> | /collectionId:<collectionId>]
选项 描述
indexingStatus 显示代码索引服务的状态和配置。
setIndexing on:开始为所有变更集创建索引。
off:停止为所有变更集创建索引。
keepupOnly:停止为之前创建的变更集创建索引,开始仅为新的变更集创建索引。
ignoreList 指定你不希望编制索引的代码文件的列表及其路径。

add:将不希望编制索引的文件添加到已忽略文件列表。
remove:从已忽略文件列表中移除希望编制索引的文件。
removeAll:清理忽略的文件列表,并开始为所有文件创建索引。
view:查看所有不要编制索引的文件。
ServerPath:指定代码文件的路径。

可以在服务器路径的开头、末尾或两端使用通配符 (*)。
listLargeFiles 显示超出指定大小(以 KB 为单位)的文件的指定数量。 然后可使用 /ignoreList 选项从编制索引中排除这些文件。

为此,需要使用 Update 3 的 Team Foundation Server 2013
reindexAll 清理以前的索引数据并重新开始创建索引。
destroyCodeIndex 删除代码索引并移除所有索引的数据。 如果使用 /noPrompt 选项,则无需确认。
temporaryDataSizeLimit 控制处理变更集时 CodeLens 创建的临时数据量。 默认限制为 6 GB(在 Update 5 中为 2 GB)。

view:显示当前大小限制。
SizeInGBs:更改大小限制。
disable:删除大小限制。

在检查过该限制后,CodeLens 才处理新的变更集。 如果临时数据超出此限制,CodeLens 将暂停处理过去的变更集,而不是新的变更集。 数据清理完毕并减少到此限制以下时,CodeLens 将重新开始处理。 清理会在每天自动运行一次。 这意味着临时数据可能超出此限制,直到清理开始运行。

为此,需要使用 Update 4 的 Team Foundation Server 2013
indexHistoryPeriod 控制对更改历史记录编制索引的时间长度。 这会影响 CodeLens 向你显示的历史记录量。 默认限值为 12 个月。 这表示 CodeLens 仅显示过去 12 个月的更改历史记录。

view:显示当前月数。
all:对所有更改历史记录编制索引。
NumberOfMonths:更改用于索引更改历史记录的月份数。

为此,需要使用 Update 4 的 Team Foundation Server 2013
collectionName 指定运行 CodeIndex 命令的项目集合的名称。 如果不使用 /CollectionId,则为必需。
collectionId 指定运行 CodeIndex 命令的项目集合的标识号。 如果不使用 /CollectionName,则为必需

先决条件

若要使用 codeIndex 命令,你必须是 Azure DevOps Administrators 安全组的成员。 请参阅Azure DevOps Server的权限参考。

示例

查看代码索引状态和配置:

TfsConfig codeIndex /indexingStatus /collectionName:"Fabrikam Web Site"

开始为所有变更集创建索引:

TfsConfig codeIndex /setIndexing:on /collectionName:"Fabrikam Web Site"

停止为之前创建的变更集创建索引,开始仅为新的变更集创建索引:

TfsConfig codeIndex /setIndexing:keepupOnly /collectionName:"Fabrikam Web Site"

查找最多 50 个大于 10 KB 的文件:

TfsConfig codeIndex /listLargeFiles /fileCount:50 /minSize:10 /collectionName:"Fabrikam Web Site"

从索引中排除特定的文件并将其添加到忽略的文件列表中:

TfsConfig codeIndex /ignoreList:add "$/Fabrikam Web Site/Catalog.cs" /collectionName:"Fabrikam Web Site"

查看所有未编制索引的文件:

TfsConfig codeIndex /ignoreList:view

清理以前的索引数据并重新开始创建索引:

TfsConfig codeIndex /reindexAll /collectionName:"Fabrikam Web Site"

若要保存所有变更集历史记录:

TfsConfig codeIndex /indexHistoryPeriod:all /collectionName:"Fabrikam Web Site"

若要删除对 CodeLens 临时数据的大小限制并不管临时数据大小继续索引:

TfsConfig codeIndex /temporaryDataSizeLimit:disable /collectionName:"Fabrikam Web Site"

删除代码索引并进行确认:

TfsConfig codeIndex /destroyCodeIndex /collectionName:"Fabrikam Web Site"

命令可用性: TFS 2015 和 TFS 2013

使用 CodeIndex 命令管理Azure DevOps Server上的代码索引。 例如,你可能希望重置该索引以修复 CodeLens 信息,或关闭索引以调查服务器性能问题。

TFSConfig CodeIndex /indexingStatus | /setIndexing:[ on | off | keepupOnly ] |
        /ignoreList:[ add | remove | removeAll | view ] ServerPath |
        /listLargeFiles [/fileCount:FileCount] [/minSize:MinSize] |
        /reindexAll | /destroyCodeIndex [/noPrompt] |
        /temporaryDataSizeLimit:[ view | <SizeInGBs> | disable ] |
        /indexHistoryPeriod:[ view | all | <NumberOfMonths> ] [/collectionName:CollectionName | /collectionId:CollectionId]

选项

说明

/indexingStatus

显示代码索引服务的状态和配置。

/setIndexing:[ on | off | keepupOnly ]

  • on:开始为所有变更集创建索引。
  • off:停止为所有变更集创建索引。
  • keepupOnly:停止为之前创建的变更集创建索引,开始仅为新的变更集创建索引。

/ignoreList:[ add | remove | removeAll | view ] ServerPath

指定你不希望编制索引的代码文件的列表及其路径。

  • add:将不希望编制索引的文件添加到已忽略文件列表。
  • remove:从已忽略文件列表中移除希望编制索引的文件。
  • removeAll:清理忽略的文件列表,并开始为所有文件创建索引。
  • view:查看所有不要编制索引的文件。
  • ServerPath:指定代码文件的路径。

可以在服务器路径的开头、末尾或两端使用通配符 (*)。

/listLargeFiles/fileCountFileCount/minSize:MinSize

显示超出指定大小(以 KB 为单位)的文件的指定数量。 然后可使用 /ignoreList 选项从编制索引中排除这些文件。
对于此选项,需要使用 Update 3 或更高版本的 Team Foundation Server 2013。

/reindexAll

清理以前的索引数据并重新开始创建索引。

/destroyCodeIndex [/noPrompt]

删除代码索引并移除所有索引的数据。 如果使用 /noPrompt 选项,则无需确认。

/temporaryDataSizeLimit[view | SizeInGBs | disable]

控制处理变更集时 CodeLens 创建的临时数据量。 默认限制为 6 GB(在 Update 5 中为 2 GB)。

  • view:显示当前大小限制。
  • SizeInGBs:更改大小限制。
  • disable:删除大小限制。

在检查过该限制后,CodeLens 才处理新的变更集。 如果临时数据超出此限制,CodeLens 将暂停处理过去的变更集,而不是新的变更集。 数据清理完毕并减少到此限制以下时,CodeLens 将重新开始处理。 清理会在每天自动运行一次。 这意味着临时数据可能超出此限制,直到清理开始运行。

对于此选项,需要使用 Update 4 或更高版本的 Team Foundation Server 2013。

/indexHistoryPeriod[view | all | NumberOfMonths]

控制对更改历史记录编制索引的时间长度。 这会影响 CodeLens 向你显示的历史记录量。 默认限值为 12 个月。 这表示 CodeLens 仅显示过去 12 个月的更改历史记录。

  • view:显示当前月数。
  • all:对所有更改历史记录编制索引。
  • NumberOfMonths:更改用于索引更改历史记录的月份数。

对于此选项,需要使用 Update 4 或更高版本的 Team Foundation Server 2013。

/collectionName:CollectionName

指定运行 CodeIndex 命令的项目集合的名称。 如果不使用 /CollectionId,则为必需。

/collectionId:CollectionId

指定运行 CodeIndex 命令的项目集合的标识号。 如果不使用 /CollectionName,则为必需。

先决条件

若要使用 CodeIndex 此命令,你必须是 Team Foundation Administrators 安全组的成员。 请参阅Azure DevOps Server的权限参考。

示例

查看代码索引状态和配置:

TFSConfig CodeIndex /indexingStatus /collectionName:"Fabrikam Web Site"

开始为所有变更集创建索引:

TFSConfig CodeIndex /setIndexing:on /collectionName:"Fabrikam Web Site"

停止为之前创建的变更集创建索引,开始仅为新的变更集创建索引:

TFSConfig CodeIndex /setIndexing:keepupOnly /collectionName:"Fabrikam Web Site"

查找最多 50 个大于 10 KB 的文件:

TFSConfig CodeIndex /listLargeFiles /fileCount:50 /minSize:10 /collectionName:"Fabrikam Web Site"

从索引中排除特定的文件并将其添加到忽略的文件列表中:

TFSConfig CodeIndex /ignoreList:add "$/Fabrikam Web Site/Catalog.cs" /collectionName:"Fabrikam Web Site"

查看所有未编制索引的文件:

TFSConfig CodeIndex /ignoreList:view

清理以前的索引数据并重新开始创建索引:

TFSConfig CodeIndex /reindexAll /collectionName:"Fabrikam Web Site"

若要保存所有变更集历史记录:

TFSConfig CodeIndex /indexHistoryPeriod:all /collectionName:"Fabrikam Web Site"

若要删除对 CodeLens 临时数据的大小限制并不管临时数据大小继续索引:

TFSConfig CodeIndex /temporaryDataSizeLimit:disable /collectionName:"Fabrikam Web Site"

删除代码索引并进行确认:

TFSConfig CodeIndex /destroyCodeIndex /collectionName:"Fabrikam Web Site"

集合

可以使用集合命令从部署Azure DevOps Server附加、分离或删除项目集合。 还可以使用 集合 命令复制现有集合的数据库,将其重命名,并将其附加到部署。 此过程有时称为克隆集合。

TfsConfig collection {/attach | /create | /detach | /delete} [/collectionName:<collectionName>]
    [/description:<collectionDescription>]
    [/collectionDB:<serverName>;<databaseName>]
    [/processModel:Inheritance|Xml]
    [/reportingFolder:<reportingFolderPath>]
    [/clone] [/verify] [/continue]
选项 描述
附加 如果使用 /detach/delete 都不是必需的。 如果指定此选项,还必须使用 /collectionDB 选项。 作为选项,还可以将 /collectionName/clone 与此选项配合使用。 如果使用 /attach 选项,则指定的集合数据库将添加到Azure DevOps Server部署。
create 创建集合。
detach 如果使用 /attach/delete 都不是必需的。 如果指定此选项,还必须使用 /collectionName 选项。 如果使用 /detach 选项,则指定的集合的数据库将停止,并且集合将从部署Azure DevOps Server分离。
delete 如果未使用 /detach/attach ,则为必需。 如果指定此选项,还必须使用 /collectionName 选项。 如果使用 /delete 选项,将停止指定集合的数据库,并且该集合将从Azure DevOps Server永久分离。 你不能将该集合数据库重新附加到此部署或任何其他部署。
CollectionName 指定项目集合的名称。 如果该集合名称包含空格,则必须使用引号将该名称引起来(例如“My Collection”)。 如果使用 /detach/delete ,则为必需。 如果将此选项与 /detach/delete 配合使用,则指定将分离或删除的集合。 如果将此选项用于 /attach,则指定集合的新名称。 如果将此选项用于 /attach/clone,则它指定重复集合的名称。
CollectionDB 如果使用 /attach ,则为必需。 此选项指定运行SQL Server的服务器的名称以及该服务器上托管的集合数据库的名称。
ServerName 指定承载Azure DevOps Server配置数据库的服务器的名称,如果想要使用默认实例以外的实例,则实例的名称。 如果指定实例,则必须使用以下格式: ServerName\InstanceName
DatabaseName 指定配置数据库的名称。 默认情况下,此数据库的名称为 TFS_ConfigurationDB。
clone 如果指定此选项,原始集合数据库将作为克隆附加到SQL Server,并且此数据库将附加到Azure DevOps Server。 此选项主要用于拆分项目集合。

提示

/delete 选项不会从SQL Server中删除集合数据库。 从Azure DevOps Server中删除集合数据库后,可以从SQL Server手动删除数据库。

先决条件

若要使用 collections 命令,你必须是 Team Foundation Administrators 安全组的成员以及运行 TfsConfig 的计算机上的本地管理员组。 对于Azure DevOps Server数据库使用的所有SQL Server实例,还必须是 sysadmin 安全角色的成员。 如果部署与 SharePoint 集成,并且使用的是 /delete 选项,则还必须是要从中删除网站集的 SharePoint 场的场管理员组的成员。

有关详细信息,请参阅Azure DevOps Server的权限参考

备注

若要以交互方式管理集合或创建集合,可以使用 Azure DevOps 管理控制台中的 Project Collections 节点。 请参阅 “管理项目集合”。

示例

以下示例演示如何从Azure DevOps Server部署中永久删除Contoso Summer Intern Projects项目集合。

TfsConfig collection /delete /CollectionName:"Contoso Summer Intern Projects"
TFSConfig - Team Foundation Server Configuration Tool
Copyright � Microsoft Corporation. All rights reserved.
Deleting a project collection is an irreversible operation. A deleted collection cannot be reattached to the same or another Team Foundation Server. Are you sure you want to delete 'Contoso Summer Intern Projects'? (Yes/No)
Yes
Found Collection 'Contoso Summer Intern Projects' Deleting...
The delete of collection 'Contoso Summer Intern Projects' succeeded.

以下示例演示如何复制Contoso Summer Interns Projects项目集合、命名项目Contoso Winter Interns Projects集合,并将重复集合附加到Azure DevOps Server的部署。

TfsConfig collection /attach /collectiondb:"ContosoMain;TFS_Contoso Summer Interns Projects"
    /CollectionName:"Contoso Winter Intern Projects" /clone

可以使用 Collection 命令从部署 TFS 附加、分离或删除项目集合。 还可以使用 Collection 命令复制现有集合的数据库,将其重命名,并将其附加到部署。 此过程有时称为克隆集合。 但是,不能使用 Collection 命令创建项目集合。

TFSConfig Collection {/attach | /detach | /delete} [/collectionName:CollectionName]
        [/collectionDB:ServerName;DatabaseName] [/clone]

参数

选项

说明

/attach

如果未使用 /detach/delete ,则为必需。

如果指定此选项,还必须使用 /collectionDB 选项。

作为选项,还可以将 /collectionName/clone 与此选项一起使用。

如果使用 /attach 选项,则指定的集合数据库将添加到Azure DevOps Server的部署中。

/detach

如果未使用 /attach/delete ,则为必需。

如果指定此选项,还必须使用 /collectionName 选项。

如果使用 /detach 选项,将停止指定集合的数据库,并且该集合将从部署Azure DevOps Server分离。

/delete

如果未使用 /detach/attach ,则为必需。

如果指定此选项,还必须使用 /collectionName 选项。

如果使用 /delete 选项,将停止指定集合的数据库,并且该集合将从Azure DevOps Server永久分离。

你不能将该集合数据库重新附加到此部署或任何其他部署。

提示:/delete 选项不会从SQL Server中删除集合数据库。

从Azure DevOps Server中删除集合数据库后,可以从SQL Server手动删除数据库。

/CollectionName: CollectionName

指定项目集合的名称。 如果该集合名称包含空格,则必须使用引号将该名称引起来(例如“My Collection”)。

如果使用 /detach/delete ,则为必需。

如果将此选项与 /detach/delete 配合使用,则指定将分离或删除的集合。

如果将此选项用于 /attach,则指定集合的新名称。

如果将此选项用于 /attach/clone,则它指定重复集合的名称。

/CollectionDB: ServerName;DatabaseName

如果使用 /attach ,则为必需。

此选项指定运行SQL Server的服务器的名称以及该服务器上托管的集合数据库的名称。

  • ServerName:指定托管Azure DevOps Server配置数据库的服务器的名称,如果想要使用默认实例以外的实例,则实例的名称。

如果指定实例,则必须使用以下格式: ServerName\InstanceName

  • DatabaseName:指定配置数据库的名称。 默认情况下,此数据库的名称为 TFS_ConfigurationDB。

/clone

如果指定此选项,原始集合数据库将作为克隆附加到SQL Server,并且此数据库将附加到Azure DevOps Server。 此选项主要用于拆分项目集合。

先决条件

若要使用 Collections 命令,你必须是 Team Foundation Administrators 安全组的成员以及运行 TFSConfig 的计算机上的本地管理员组。 对于Azure DevOps Server数据库使用的所有SQL Server实例,还必须是 sysadmin 安全角色的成员。 如果部署与 SharePoint 集成,并且使用的是 /delete 选项,则还必须是要从中删除网站集的 SharePoint 场的场管理员组的成员。

有关详细信息,请参阅Azure DevOps Server的权限参考

备注

若要以交互方式管理集合或创建集合,可以使用 Azure DevOps 管理控制台中的 Project Collections 节点。 请参阅 “管理项目集合”。

示例

以下示例演示如何从部署 Azure DevOps Server 中永久删除“Contoso Summer Intern Projects”项目集合。

TFSConfig Collection /delete /CollectionName:"Contoso Summer Intern Projects"


TFSConfig - Team Foundation Server Configuration Tool
Copyright � Microsoft Corporation. All rights reserved.
Deleting a project collection is an irreversible operation. A deleted collection cannot be reattached to the same or another Team Foundation Server. Are you sure you want to delete 'Contoso Summer Intern Projects'? (Yes/No)
Yes
Found Collection 'Contoso Summer Intern Projects' Deleting...
The delete of collection 'Contoso Summer Intern Projects' succeeded.

以下示例演示如何复制“Contoso Summer Interns Projects”项目集合,将其命名为“Contoso Winter Interns Projects”,并将重复集合附加到部署Azure DevOps Server。

TFSConfig Collection /attach /collectiondb:"ContosoMain;TFS_Contoso Summer Interns Projects"
            /CollectionName:"Contoso Winter Intern Projects" /clone

ColumnStoreIndex

注意

命令可用性:需要 TFS 2015.2 及更高版本。

使用 columnStoreIndex 命令为Azure DevOps Server部署使用的数据库启用或禁用列存储索引。

TfsConfig columnStoreIndex /enabled:<true|false>
	/sqlInstance:<serverName>
	/databaseName:<databaseName>
选项 说明
enabled 指定是启用或禁用给定 SQL 实例和数据库的列存储索引。
sqlInstance 指定承载要为其启用或禁用列存储索引的数据库的服务器的名称,以及使用非默认值的实例时实例的名称。 如果指定实例,则必须使用以下格式: ServerName\InstanceName
databaseName 指定要为其启用或禁用列存储索引的数据库的名称。

先决条件

若要使用 columnStoreIndex 命令,必须是指定SQL Server实例的 sysadmin 角色的成员。

备注

如果要将支持列存储索引的 SQL 实例移动到不支持的列存储索引的 SQL 实例,则通常使用 columnStoreIndex 命令。 在这种情况下,需要禁用所有列存储索引,然后才能成功移动数据库。 同样,如果要将数据库移回支持的列存储索引的 SQL 实例,可能需要重新启用列存储索引,以节省空间并提升性能。

示例

以下示例演示如何为在命名ContosoMain实例TeamDatabases上运行的服务器上运行的 SQL 实例上命名TFS_DefaultCollection的数据库启用列存储索引。

TfsConfig columnStoreIndex /enabled:true /sqlInstance:ContosoMain\TeamDatabases /databaseName:TFS_DefaultCollection

使用 ColumnStoreIndex 命令为 TFS 部署使用的数据库启用或禁用列存储索引。

TfsConfig columnStoreIndex /enabled:{true|false}
        /sqlInstance:ServerName
        /databaseName:DatabaseName

选项

说明

/enabled

指定是为给定 SQL 实例和数据库启用或禁用列存储索引。

/sqlInstance

指定承载要为其启用或禁用列存储索引的数据库的服务器的名称,以及使用非默认值的实例时实例的名称。

如果指定实例,则必须使用以下格式: ServerName\InstanceName

/databaseName

指定要为其启用或禁用列存储索引的数据库的名称。

先决条件

若要使用 ColumnStoreIndex 命令,你必须是指定SQL Server实例的 sysadmin 角色的成员。

备注

如果要将支持列存储索引的 SQL 实例移动到不支持的列存储索引的 SQL 实例,则通常使用 ColumnStoreIndex 命令。 在这种情况下,需要禁用所有列存储索引,然后才能成功移动数据库。 同样,如果要将数据库移回支持的列存储索引的 SQL 实例,可能需要重新启用列存储索引,以节省空间并提升性能。

示例

以下示例演示如何为在命名实例“TeamDatabases”上名为“ContosoMain”的服务器上运行的 SQL 实例上命名TFS_DefaultCollection的数据库启用列存储索引。

TFSConfig columnStoreIndex /enabled:true /sqlInstance:ContosoMain\TeamDatabases /databaseName:TFS_DefaultCollection

ConfigureMail

将运行Azure DevOps Server的服务器配置为使用现有 SMTP 服务器进行电子邮件警报。

TfsConfig configureMail /Enabled:<true|false> /FromEmailAddress:<emailAddress> /SmtpHost:<SMTPHostName>
选项 描述
FromEmailAddress 指定从中向Azure DevOps Server发送电子邮件通知的地址,用于签入、分配给你的工作项或其他通知。 此地址还会检查是否有效,并且根据服务器配置,可能需要在邮件服务器上表示有效的电子邮件帐户。 如果地址不存在或无效,则使用默认电子邮件地址。
SmtpHost 指定承载邮件服务器的服务器的名称。

先决条件

若要使用 configureMail 命令,你必须是 Azure DevOps 应用程序层服务器上的 Team Foundation Administrators 安全组的成员。 有关详细信息,请参阅Azure DevOps Server的权限参考

备注

还可以使用管理控制台将Azure DevOps Server配置为使用 SMTP 服务器。

示例

以下示例显示了用于将发件人电子邮件地址和 TFS@contoso.com SMTP 邮件服务器配置为 ContosoMailServer

TfsConfig configureMail /FromEmailAddress:TFS@contoso.com /SmtpHost:ContosoMailServer

DBCompression

使用 dbCompression 命令为Azure DevOps Server部署使用的数据库启用或禁用数据库页压缩。

TfsConfig dbCompression /pageCompression:[enable|disable]
	/sqlInstance:<serverName>
	/databaseName:<databaseName>
	[/rebuildNow [/offline]]
选项 描述
pageCompression 指定是为给定 SQL 实例和数据库启用或禁用页面压缩。
sqlInstance 指定承载要为其启用或禁用页面压缩的数据库的服务器的名称,以及使用非默认值的实例时实例的名称。 如果指定实例,则必须使用以下格式: ServerName\InstanceName
databaseName 指定要为其启用或禁用页面压缩的数据库的名称。
rebuildNow 可选。 指定是否应 (重新生成数据库索引,并根据需要立即) 压缩或解压缩。 如果未使用,索引将由每周运行的后台作业重新生成。
offline 可选。 仅与 /rebuildNow 结合使用。 如果未指定 /offline ,则索引将联机重新生成。 如果指定 /offline ,则索引将脱机重新生成。 这会阻止其他操作,但可能比联机索引重新生成更快。

先决条件

若要使用 dbCompression 命令,必须是指定SQL Server实例的 sysadmin 角色的成员。

备注

如果将数据库从支持压缩的 SQL 实例移动到不支持压缩的 SQL 实例,则通常使用 dbCompression 命令。 在这种情况下,需要禁用压缩并解压缩所有索引,然后才能成功移动数据库。 同样,如果要将数据库移回支持压缩的 SQL 实例,则可能需要重新启用压缩以节省空间。

此命令仅更改Azure DevOps Server是否首选使用数据库页压缩 - 数据库仍必须托管在支持压缩的 SQL 实例中。 有关详细信息,请参阅SQL Server各版本支持的功能

示例

以下示例演示如何立即为在命名ContosoMain实例TeamDatabases上运行的服务器上运行的 SQL 实例上运行的数据库启用页面压缩,TFS_DefaultCollection并重新生成索引。

TfsConfig dbCompression /pageCompression:enable /sqlInstance:ContosoMain\TeamDatabases /databaseName:TFS_DefaultCollection /rebuildNow

有关 TFS 2012 和早期版本,请参阅 https://support.microsoft.com/kb/2712111

使用 DBCompression 命令为Azure DevOps Server部署使用的数据库启用或禁用数据库页压缩。

TFSConfig dbCompression /pageCompression:{enable|disable}
        /sqlInstance:ServerName
        /databaseName:DatabaseName
        [/rebuildNow [/offline]]

选项

说明

/pageCompression

指定是为给定 SQL 实例和数据库启用或禁用页面压缩。

/sqlInstance

指定承载要为其启用或禁用页面压缩的数据库的服务器的名称,以及使用非默认值的实例时实例的名称。

如果指定实例,则必须使用以下格式: ServerName\InstanceName

/databaseName

指定要为其启用或禁用页面压缩的数据库的名称。

/rebuildNow

可选。 指定是否应 (重新生成数据库索引,并根据需要立即) 压缩或解压缩。 如果未使用,索引将由每周运行的后台作业重新生成。

/offline

可选。 仅与 /rebuildNow 结合使用。 如果未指定 /offline ,则索引将联机重新生成。 如果指定 /offline ,则索引将脱机重新生成。 这会阻止其他操作,但可能比联机索引重新生成更快。

先决条件

若要使用 DBCompression 命令,必须是指定SQL Server实例的 sysadmin 角色的成员。

备注

如果要将数据库从支持压缩的 SQL 实例移动到不支持压缩的 SQL 实例,则通常使用 DBCompression 命令。 在这种情况下,需要禁用压缩并解压缩所有索引,然后才能成功移动数据库。 同样,如果要将数据库移回支持压缩的 SQL 实例,可能需要重新启用压缩,以便节省空间。

此命令仅更改Azure DevOps Server是否希望使用数据库页压缩 - 数据库仍必须托管在支持压缩的 SQL 实例中。 有关详细信息,请参阅SQL Server各版本支持的功能

示例

以下示例演示如何立即启用页面压缩,并在命名实例“TeamDatabases”上为名为“ContosoMain”的服务器上运行的 SQL 实例上名为TFS_DefaultCollection的数据库重新生成索引。

TFSConfig dbCompression /pageCompression:enable /sqlInstance:ContosoMain\TeamDatabases /databaseName:TFS_DefaultCollection /rebuildNow

DeleteTestResults

使用 deleteTestResults 命令从集合存储中删除旧的存储测试结果。 这通常是为了减少存储大小或减少将测试结果迁移到新架构所需的时间。

TfsConfig deleteTestResults /ageInDays:<number> /sqlInstance:<serverName> /databaseName:<databaseName>
    [/type:[automated|manual|all]]
    [/preview]
选项 描述
ageInDays 将删除或预览早于指定天数的测试结果。
sqlInstance 承载要删除或预览测试结果的数据库的服务器的名称,以及使用非默认值的实例时实例的名称。 如果指定实例,则必须使用以下格式: ServerName\InstanceName
databaseName 要为其删除或预览测试结果的数据库的名称。
类型 可选。 要删除的测试结果的类型。 有效值是 自动化手动值和 全部值。
预览 可选。 显示将根据天数删除的测试结果数,但不删除这些结果。

先决条件

若要使用 deleteTestResults 命令,必须是指定SQL Server实例的 sysadmin 角色的成员。

备注

使用 /preview 参数可查看按项目名称和年份排序的测试结果,而无需删除这些结果。

示例

以下示例演示如何删除在命名TFS_DefaultCollectionContosoMain实例TeamDatabases上运行的 SQL 实例上运行的数据库超过 60 天的手动测试结果。

TfsConfig deleteTestResults /ageInDays:60 /sqlInstance:ContosoMain\TeamDatabases /databaseName:TFS_DefaultCollection /type:manual

命令可用性: TFS 2017 及更高版本

使用 DeleteTestResults 命令从集合存储中删除旧的存储测试结果。 这通常是为了减少存储大小或减少将测试结果迁移到新架构所需的时间。

TFSConfig DeleteTestResults /ageInDays:{number} 
    /sqlInstance:ServerName
    /databaseName:DatabaseName
    [/type:{automated|manual|all}]
    [/preview]

选项

说明

/ageInDays

将删除或预览早于指定天数的测试结果。

/sqlInstance

承载要删除或预览测试结果的数据库的服务器的名称,以及使用非默认值的实例时实例的名称。

如果指定实例,则必须使用以下格式: ServerName\InstanceName

/databaseName

要为其删除或预览测试结果的数据库的名称。

/type

可选。 要删除的测试结果的类型。 有效值是 自动化手动值和 全部值。

/preview

可选。 显示将根据天数删除的测试结果数,但不删除这些结果。

先决条件

若要使用 DeleteTestResults 命令,你必须是指定SQL Server实例的 sysadmin 角色的成员。

备注

使用 /preview 参数可查看按项目名称和年份排序的测试结果,而无需删除这些结果。

示例

以下示例演示如何删除在命名实例“TeamDatabases”上名为“ContosoMain”的服务器上运行的 SQL 实例上名为TFS_DefaultCollection的数据库超过 60 天的手动测试结果。

TFSConfig deleteTestResults /ageInDays:60 /sqlInstance:ContosoMain\TeamDatabases /databaseName:TFS_DefaultCollection /type:manual

DeploymentPool

deploymentPool 命令旨在将所有部署组从一个部署池迁移到另一个部署池。

TfsConfig deploymentpool /migrateDeploymentGroups /fromPool:<source pool name> /toPool:<destination pool name>
选项 描述
fromPool 源池名称。
toPool 目标池名称。

标识

标识命令列出或更改部署Azure DevOps Server中用户和组 (SID) 的安全标识符。 在以下情况中,您可能需要更改或更新用户和组的 SID:

  • 更改部署的域

  • 从工作组更改为域或从域更改为工作组

  • 在 Active Directory 中跨域迁移帐户

注意

如果您要更改同一 Active Directory 林内的域,则不需要运行此命令。 Azure DevOps Server会自动处理同一林中移动的 SID 更改。

TfsConfig identities [/change /fromdomain:<domainName1> /todomain:<domainName2>
    [/account:<accountName> [/toaccount:<accountName>]] [/sqlInstance:<serverName> /databaseName:<databaseName>]
选项 描述
更改 指定要更改标识,而非列出标识。
fromdomain 使用 /change 时是必需的。 指定要更改的标识的原始域。 如果要从某个工作组环境更改,请指定计算机的名称。
todomain 使用 /change 时是必需的。 指定要将标识更改到的域。 如果要更改到某个工作组环境,请指定计算机的名称。
account 指定要为其列出或更改标识的帐户的名称。
toaccount 指定要将标识更改到的帐户的名称。
SQLInstance 指定运行SQL Server的服务器的名称,如果想要使用默认实例以外的实例,则指定实例的名称。 如果指定一个实例,则你必须使用以下格式:

服务器名称\实例名称
DatabaseName 指定Azure DevOps Server的配置数据库的名称。

先决条件

若要使用标识命令,你必须是 Team Foundation Administrators 安全组的成员,并且是 Team Foundation Server 使用的所有SQL Server实例的 sysadmin 角色的成员。 有关详细信息,请参阅设置Azure DevOps Server的管理员权限

备注

您可以选择指定数据库在您为部署配置应用层服务器之前更改标识。 例如,在克隆Azure DevOps Server部署时,可以指定数据库来更改服务帐户。

更改标识时,目标帐户或帐户必须已存在于 Windows 中。

您必须等待与 Windows 的下一次标识同步,然后才能更新您使用此命令更改的帐户的属性。 此要求包括组到用户、用户到组以及域帐户到本地帐户的更改。

示例

以下示例演示如何列出存储在Azure DevOps Server中的所有 Windows 用户和组的名称,以及每个用户或组的 SID 是否与 Windows 中的 SID 匹配。 Contoso1 域管理员创建了域组,例如Contoso1\\DevelopersContoso1\\Testers,并帮助简化跨Azure DevOps Server、SQL Server Reporting Services和 SharePoint 产品的权限管理。

TfsConfig identities

    TFSConfig - Team Foundation Server Configuration Tool
    Copyright � Microsoft Corporation. All rights reserved.

    Account Name Exists (see note 1) Matches (see note 2)
    --------------------------------------------------------------------
    CREATOR OWNER True True
    Contoso1\hholt True True
    BUILTIN\Administrators True True
    Contoso1\Developers True True
    Contoso1\Testers True True
    Contoso1\PMs True True
    Contoso1\jpeoples True True
    Contoso1\Domain Admins True True
    Contoso1\SVCACCT1 True True

    9 security identifiers (SIDs) were found stored in Team Foundation Server. Of these, 9 were found in Windows. 0 had differing SIDs.

以下示例演示如何将 Azure DevOps Server 中所有帐户的 SID 从 Contoso1 域更改为在域中具有匹配名称ContosoPrime的帐户的 SID。 只有匹配的帐户名称已经更新其 SID。 例如,如果hholt帐户存在,Contoso1\hholtContosoPrime\hholt并且帐户 SID 将更改为 SID。ContosoPrime\hholt ContosoPrime\hholt如果该帐户不存在,则不会更新 Contoso1\hholtSID。

TfsConfig identities /change /fromdomain:Contoso1 /todomain:ContosoPrime

以下示例演示如何将单个用户帐户 Contoso1\hholt的帐户更改为另一个用户帐户的帐户 ContosoPrime\jpeoples

TfsConfig identities /change /fromdomain:Contoso1 /todomain:ContosoPrime /account:hholt /toaccount:jpeoples

以下示例演示如何在更改部署Contoso1ContosoPrime域时更改在部署Azure DevOps Server中使用的服务帐户的 SIDNT AUTHORITY\NETWORK SERVICE。 若要更改网络服务之类的系统帐户,您必须执行一个两步过程。 首先将服务帐户从 NT AUTHORITY\NETWORK SERVICE 新域中 TempSVC的域帐户更改为域帐户,然后将帐户更改回新域中服务器上的 NETWORK SERVICE。 配置数据库托管在SQL Server中命名ContosoMainTeamDatabases实例上的服务器上。

TfsConfig identities /change /fromdomain:"NT AUTHORITY" /todomain:ContosoPrime /account:"NETWORK SERVICE"
  /toaccount:TempSVC /SQLInstance:ContosoMain\TeamDatabases /DatabaseName:TFS_ConfigurationDB

TfsConfig identities /change /fromdomain:ContosoPrime /todomain:"NT AUTHORITY" /account:TempSVC
	/toaccount:"NETWORK SERVICE"

标识命令列出或更改 TFS 部署中用户和组 (SID) 的安全标识符。 在以下情况中,您可能需要更改或更新用户和组的 SID:

  • 更改部署的域

  • 将工作组更改为域或将域更改为工作组

  • 在 Active Directory 中的域之间迁移帐户

    注意

    如果您要更改同一 Active Directory 林内的域,则不需要运行此命令。 Azure DevOps Server会自动处理同一林中移动的 SID 更改。

    TFSConfig Identities [/change /fromdomain:DomainName1 /todomain:DomainName2 [/account:AccountName] [/toaccount:AccountName]] [/sqlInstance:ServerName /databaseName:DatabaseName] [/account:AccountName] [/usesqlalwayson]

选项

说明

/change

指定要更改标识,而非列出标识。

/fromdomain: DomainName

使用 /change 时是必需的。 指定要更改的标识的原始域。 如果要从某个工作组环境更改,请指定计算机的名称。

/todomain: DomainName

使用 /change 时是必需的。 指定要将标识更改到的域。 如果要更改到某个工作组环境,请指定计算机的名称。

/account: AccountName

指定要为其列出或更改标识的帐户的名称。

/toaccount: AccountName

指定要将标识更改到的帐户的名称。

/SQLInstance: ServerName

如果要使用默认实例以外的实例,请指定运行SQL Server的服务器的名称和实例的名称。 如果指定一个实例,则你必须使用以下格式:

服务器名称\实例名称

/DatabaseName: DatabaseName

指定Azure DevOps Server的配置数据库的名称。

/usesqlalwayson

指定数据库是SQL Server中Always On可用性组的一部分。 配置后,此选项将在连接字符串中设置 MultiSubnetFailover。

有关详细信息,请参阅 [Always On可用性组 (SQL Server) ] (/sql/database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server。

先决条件

若要使用 Identities 命令,你必须是 Team Foundation Administrators 安全组的成员,并且必须是Azure DevOps Server使用的所有SQL Server实例的 sysadmin 角色的成员。 有关详细信息,请参阅设置Azure DevOps Server的管理员权限

备注

您可以选择指定数据库在您为部署配置应用层服务器之前更改标识。 例如,在克隆Azure DevOps Server部署时,可以指定数据库来更改服务帐户。

更改标识时,目标帐户或帐户必须已存在于 Windows 中。

您必须等待与 Windows 的下一次标识同步,然后才能更新您使用此命令更改的帐户的属性。 此要求包括组到用户、用户到组以及域帐户到本地帐户的更改。

示例

以下示例演示如何列出存储在Azure DevOps Server中的所有 Windows 用户和组的名称,以及每个用户或组的 SID 是否与 Windows 中的 SID 匹配。 Contoso1 域管理员创建了域组,例如“Contoso1\Developers”和“Contoso1\Testers”,以帮助简化跨Azure DevOps Server、SQL Server Reporting Services和 SharePoint 产品的权限管理。

TFSConfig Identities

示例输出:

TFSConfig - Team Foundation Server Configuration Tool
Copyright � Microsoft Corporation. All rights reserved.

Account Name Exists (see note 1) Matches (see note 2)
--------------------------------------------------------------------
CREATOR OWNER True True
Contoso1\hholt True True
BUILTIN\Administrators True True
Contoso1\Developers True True
Contoso1\Testers True True
Contoso1\PMs True True
Contoso1\jpeoples True True
Contoso1\Domain Admins True True
Contoso1\SVCACCT1 True True

9 security identifiers (SIDs) were found stored in Team Foundation Server. Of these, 9 were found in Windows. 0 had differing SIDs.

以下示例演示如何将 Azure DevOps Server 中所有帐户的 SID 从 Contoso1 域更改为 CONtosoPrime 域中具有匹配名称的帐户的 SID。 只有匹配的帐户名称已经更新其 SID。 例如,如果“hholt”帐户作为 Contoso1\hholt 和 ContosoPrime\hholt 存在,则帐户 SID 将更改为 ContosoPrime\hholt 的 SID。 如果“ContosoPrime\hholt”帐户不存在,将不会针对 Contoso1\hholt 更新 SID。

TFSConfig Identities /change /fromdomain:Contoso1 /todomain:ContosoPrime

以下示例演示如何将单个用户帐户 (Contoso1\hholt) 的帐户更改为另一个用户帐户 (ContosoPrime\jpeoples) 的帐户。

TFSConfig Identities /change /fromdomain:Contoso1 /todomain:ContosoPrime /account:hholt /toaccount:jpeoples

以下示例演示如何在将部署域从 Contoso1 更改为 ContosoPrime 时,更改 Azure DevOps Server部署中使用的“NT AUTHORITY\NETWORK SERVICE”服务帐户的 SID。 若要更改网络服务之类的系统帐户,您必须执行一个两步过程。 首先,要将服务帐户从 NT AUTHORITY\NETWORK SERVICE 更改为新域 (TempSVC) 中的域帐户,然后将帐户更改回新域中的服务器上的 NETWORK SERVICE。 配置数据库托管在SQL Server中命名实例“TeamDatabases”上的服务器上名为“ContosoMain”。

TFSConfig Identities /change /fromdomain:"NT AUTHORITY" /todomain:ContosoPrime /account:"NETWORK SERVICE"
    /toaccount:TempSVC /SQLInstance:ContosoMain\TeamDatabases /DatabaseName:TFS_ConfigurationDB
TFSConfig Identities /change /fromdomain:ContosoPrime /todomain:"NT AUTHORITY" /account:TempSVC
    /toaccount:"NETWORK SERVICE"

作业

可以使用 作业 命令创建日志文件,该文件提供特定项目集合的最新作业活动的详细信息,或重试一个或多个项目集合的作业。

TfsConfig jobs /retry|dumplog [/CollectionName:<collectionName>] [/CollectionId:<id>]
选项 描述
retry 如果未使用 /dumplog ,则为必需。 指定将针对指定的项目集合重新尝试最新的作业。 如果使用此选项,还必须使用 /CollectionName/CollectionID 选项。
dumplog 如果未使用 /retry ,则为必需。 指定集合的最新作业活动将发送到日志文件。 如果使用此选项,还必须使用 /CollectionName/CollectionID 选项。
CollectionName 如果未使用 /CollectionID ,则为必需。 指定将重试最近作业的集合的名称, (/retry) 或 记录 (/dumplog) 。 如果要指定所有集合,可以使用星号 (*) 。
CollectionID 如果未使用 /CollectionName ,则为必需。 指定将重试最近作业的集合的标识号 (/retry) 或记录 (/dumplog) 。

先决条件

若要使用 作业 命令,你必须是 Azure DevOps Administrators 安全组的成员。 有关详细信息,请参阅Azure DevOps Server的权限参考

备注

若要以交互方式重试作业,可以打开 Azure DevOps 的管理控制台,选择集合的 “状态 ”选项卡,然后选择“ 重试作业”。 有关详细信息,请参阅 打开 Azure DevOps 管理控制台

示例

以下示例演示如何创建一个日志文件,该文件列出Azure DevOps Server中项目集合的最新作业活动Contoso Summer Intern Projects

TfsConfig jobs /dumplog /CollectionName:"Contoso Summer Intern Projects"

可以使用 “作业 ”命令创建一个日志文件,该文件提供特定项目集合的最新作业活动的详细信息,或重试一个或多个项目集合的作业。

TFSConfig Jobs /retry|dumplog [/CollectionName:CollectionName] [/CollectionID:ID]

选项

说明

/retry

如果未使用 /dumplog ,则为必需。 指定将针对指定的项目集合重新尝试最新的作业。 如果使用此选项,还必须使用 /CollectionName/CollectionID 选项。

/dumplog

如果未使用 /retry ,则为必需。 指定集合的最新作业活动将发送到日志文件。 如果使用此选项,还必须使用 /CollectionName/CollectionID 选项。

/CollectionName: CollectionName

如果未使用 /CollectionID ,则为必需。 指定将重试最近作业的集合的名称, (/retry) 或 记录 (/dumplog) 。 如果要指定所有集合,可以使用星号 (*) 。

/CollectionID: Id

如果未使用 /CollectionName ,则为必需。 指定将重试最近作业的集合的标识号 (/retry) 或记录 (/dumplog) 。

先决条件

若要使用 “作业” 命令,你必须是 Team Foundation Administrators 安全组的成员。 有关详细信息,请参阅Azure DevOps Server的权限参考

备注

若要以交互方式重试作业,可以打开 Azure DevOps 的管理控制台,单击集合的“状态”选项卡,然后单击“重试作业”。 有关详细信息,请参阅 打开 Azure DevOps 管理控制台

示例

以下示例演示如何创建一个日志文件,该文件列出Azure DevOps Server中“Contoso Summer Intern Projects”项目集合的最新作业活动。

TFSConfig Jobs /dumplog /CollectionName:"Contoso Summer Intern Projects"

OfflineDetach

使用 flineDetach 命令将脱机集合数据库设置为分离的脱机集合数据库。

TfsConfig offlineDetach /configurationDB:<databaseName>
    /collectionDB:<databaseName>
选项 描述
configurationDB 指定要使用的配置数据库的名称。
collectionDB 指定要分离的集合数据库的名称。

先决条件

若要使用flineDetach 命令,你必须是指定SQL Server实例的 sysadmin 角色的成员。

备注

此命令修改指定的集合数据库的架构,并且不应针对 Team Foundation Server 部署正在使用的数据库运行。 如果数据库由 Team Foundation Server 部署使用,请改用 TfsConfig collection /detach

如果需要从备份还原单个集合数据库,而不还原属于同一Azure DevOps Server部署的其他集合数据库,则此命令非常有用。 以前,这需要还原一组完整且一致的数据库, (配置以及所有集合) 到过渡环境、使用这些数据库配置Azure DevOps Server部署,以及分离感兴趣的一个集合。

现在可以还原配置数据库和感兴趣的集合数据库的一致副本,并运行 flineDetach 命令。 然后,可以在适当的版本中将分离的集合数据库附加到任何Azure DevOps Server部署。

示例

以下示例演示如何使用名为TFS_Configuration的配置数据库分离集合TFS_PrimaryCollection数据库,并在命名ContosoTemp实例Backups上运行的 SQL 实例上运行两者。

TfsConfig offlineDetach /configurationDB:ContosoTemp\Backups;TFS_Configuration /collectionDB:ContosoTemp\Backups;TFS_PrimaryCollection

命令可用性: TFS 2015 Update 3 及更新版本

使用 OfflineDetach 命令将脱机集合数据库设置为分离的脱机集合数据库。

TFSConfig offlineDetach /configurationDB:DatabaseName
        /collectionDB:DatabaseName

选项

说明

/configurationDB

指定要使用的配置数据库的名称。

/collectionDB

指定要分离的集合数据库的名称。

先决条件

若要使用 OfflineDetach 命令,你必须是指定SQL Server实例的 sysadmin 角色的成员。

备注

此命令修改指定集合数据库的架构,不应针对Azure DevOps Server部署正在使用的数据库运行。 如果数据库正在使用Azure DevOps Server部署,请改用 TfsConfig 集合 /detach。

如果需要从备份还原单个集合数据库,而不还原属于同一Azure DevOps Server部署的其他集合数据库,则此命令非常有用。 以前,这需要还原一组完整且一致的数据库, (配置以及所有集合) 到过渡环境、使用这些数据库配置Azure DevOps Server部署,以及分离感兴趣的一个集合。

相反,现在可以还原配置数据库的一致副本和感兴趣的集合数据库,并运行 OfflineDetach 命令。 然后,可以在适当的版本中将分离的集合数据库附加到任何Azure DevOps Server部署。

示例

以下示例演示如何使用名为TFS_Configuration的配置数据库分离名为TFS_PrimaryCollection的集合数据库,同时在名为“ContosoTemp”的服务器上运行的 SQL 实例上都位于命名实例“备份”上。

TFSConfig offlineDetach /configurationDB:ContosoTemp\Backups;TFS_Configuration /collectionDB:ContosoTemp\Backups;TFS_PrimaryCollection

代理

可以使用 代理 命令更新或更改 Azure DevOps 代理服务器使用的设置。 Azure DevOps 代理服务器通过管理分布式团队位置中下载的版本控制文件的缓存来支持分布式团队使用版本控制。 通过配置 Azure DevOps 代理服务器,可以显著减少跨广域连接所需的带宽。 此外,您不必管理版本文件的下载和缓存;文件的管理对于使用文件的开发人员而言是透明的。 同时,任何元数据交换和文件上传将继续显示在Azure DevOps Server中。 如果使用Azure DevOps Services在云中托管开发项目,可以使用 Proxy 命令不仅管理托管集合中项目的缓存,还可以管理该服务使用的一些设置。

有关安装 Azure DevOps 代理服务器和代理的初始配置的详细信息,

请参阅如何:安装 Azure DevOps 代理服务器并设置远程站点。 有关在客户端计算机上配置代理的详细信息,请参阅 Azure DevOps 版本控制命令参考

TfsConfig proxy /add|delete|change [/Collection:<teamProjectCollectionURL> /account:<accountName>]
	/Server:<TeamFoundationServerURL> [/inputs:Key1=Value1; Key2=Value2;...] [/continue]
选项 描述
add 将指定的服务器或集合添加到 Proxy.config 文件中的代理列表。 可以运行 /add 多次以包含多个集合或服务器。 将 /add 与托管在 Azure DevOps Services 上的集合配合使用时,系统会提示你在Azure DevOps Services输入凭据。
更改 更改存储为Azure DevOps Services的服务帐户的凭据。 /change 选项仅用于Azure DevOps Services;它不应用于Azure DevOps Server的本地部署。
delete 从 Proxy.config 文件中的代理列表中删除指定的服务器或集合。
account 指定用作Azure DevOps Services中代理的服务帐户的帐户。 此选项仅用于与 /change 选项结合使用Azure DevOps Services。

用于Azure DevOps Services的默认服务帐户是“帐户服务”。
continue 继续该命令的执行,即使验证过程产生警告。
集合 指定以格式Azure DevOps Services承载AccountName.DomainName/CollectionName的项目集合的 URL。
account 指定用作Azure DevOps Services服务帐户的帐户的名称。 如果帐户名包含空格,该名称必须用引号 ("") 引起来。 必须根据命令行语法指定帐户名中的所有特定字符。
account 以格式指定Azure DevOps Server部署ServerURL:Port/tfs的 URL。
PersonalAccessTokenFile (可选)指定包含个人访问令牌的文件的路径。 注册代理时,此令牌将用于对集合或帐户进行身份验证。 在 TFS 2018 Update 1) 中添加的 (
inputs 可选。 指定配置 proxy 时要使用的其他设置和值。!

例如,GvfsProjectNameGvfsRepositoryName值可用于配置 Git 存储库,以便与在 TFS 2018 Update 1) 中添加的 Git 虚拟文件系统 (GVFS) (配合使用

先决条件

若要使用 代理 命令,你必须是 Azure DevOps 管理员安全组的成员和代理服务器上的管理员。 有关详细信息,请参阅Azure DevOps Server的权限参考。

备注

使用代理命令更新Azure DevOps Server代理的现有配置。 不能将 代理 命令用于代理的初始安装和配置。

示例

以下示例演示如何添加名为FABRIKAM代理列表的Azure DevOps Server部署。

TfsConfig proxy /add /Server:http://www.fabrikam.com:8080/tfs 

以下示例演示如何使用个人访问令牌将托管在Azure DevOps Services上的项目集合添加到代理列表中以进行身份验证。 此令牌仅用于将代理注册到 Azure DevOps Services 帐户 - 默认服务帐户仍将用于运行代理。 在 TFS 2018 Update 1 中添加了此参数,以支持在无需登录提示的情况下向 Azure DevOps Services 注册代理。

TfsConfig proxy /add /Collection:https://HelenaPetersen.tfs.visualstudio.com/PhoneSaver

以下示例演示如何将项目集合添加到代理列表。 此示例使用个人访问令牌对参数 /Collection 指定的集合进行身份验证。 要使用的个人访问令牌将保存到文件。c:\PersonalAccessToken.txt

TfsConfig proxy /add /Collection:https://HelenaPetersen.tfs.visualstudio.com/PhoneSaver
	/PersonalAccessTokenFile:c:\PersonalAccessToken.txt

以下示例演示如何更改代理用于托管在 Azure DevOps Services 上的项目集合的服务帐户。 集合命名PhoneSaver,用于Azure DevOps Services的帐户名称,HelenaPetersen.fabrikam.com代理使用的服务帐户将更改为My Proxy Service Account。 由于帐户名包含空格,因此将使用引号将名称放入其中。

TfsConfig proxy /change /Collection:https://HelenaPetersen.tfs.visualstudio.com/PhoneSaver
	/account:"My Proxy Service Account"

以下示例演示如何添加用于 GVFS 的 Git 存储库。

TfsConfig proxy /add /Collection:https://HelenaPetersen.tfs.visualstudio.com/PhoneSaver /inputs:GvfsProjectName=PhoneSaver;GvfsRepositoryName=AnotherRepository

可以使用 TFSConfig Proxy 命令更新或更改 Team Foundation Server 代理使用的设置。 Team Foundation Server Proxy 通过管理位于分布式团队中的已下载版本控制文件的缓存来支持分布式团队使用版本控制。 通过配置 Team Foundation Server 代理,可以显著减少跨广域连接所需的带宽。 此外,您不必管理版本文件的下载和缓存;文件的管理对于使用文件的开发人员而言是透明的。 同时,任何元数据交换和文件上传将继续显示在Azure DevOps Server中。 如果使用Azure DevOps Services在云中托管开发项目,可以使用 Proxy 命令不仅管理托管集合中项目的缓存,还可以管理该服务使用的一些设置。

有关安装 Azure DevOps 代理服务器和代理的初始配置的详细信息,

请参阅如何:安装 Azure DevOps 代理服务器并设置远程站点。 有关在客户端计算机上配置代理的详细信息,请参阅Team Foundation 版本控制命令参考

TFSConfig Proxy /add|delete|change [/Collection:TeamProjectCollectionURL /account:AccountName]
            /Server:TeamFoundationServerURL [/inputs:Key1=Value1; Key2=Value2;...] [/Continue]

选项

说明

/add

将指定的服务器或集合添加到 Proxy.config 文件中的代理列表。

可以运行 /add 多次以包含多个集合或服务器。

将 /add 与托管在 Azure DevOps Services 上的集合一起使用时,系统会在 Azure DevOps Services 提示输入凭据。

/change

更改存储为Azure DevOps Services的服务帐户的凭据。

/change 选项仅用于Azure DevOps Services;它不应用于Azure DevOps Server的本地部署。

/delete

从 Proxy.config 文件中的代理列表中删除指定的服务器或集合。

/account

指定用作Azure DevOps Services中代理的服务帐户。

此选项仅用于与 /change 选项结合使用Azure DevOps Services。

用于Azure DevOps Services的默认服务帐户为“帐户服务”。

/continue

继续该命令的执行,即使验证过程产生警告。

/Collection:TeamProjectCollectionURL

以格式指定托管在 Azure DevOps Services AccountName.DomainName/CollectionName 上的项目集合的 URL。

/account:AccountName

指定用作Azure DevOps Services服务帐户的帐户的名称。

如果帐户名包含空格,该名称必须用引号 ("") 引起来。

必须根据命令行语法指定帐户名中的所有特定字符。

/account:ServerURL

以格式指定Azure DevOps Server部署ServerURL:Port/tfs的 URL。

/PersonalAccessTokenFile:P athToFileWithPAT

(可选)指定包含个人访问令牌的文件的路径。 注册代理时,此令牌将用于对集合或帐户进行身份验证。 在 TFS 2018 Update 1) 中添加的 (

/inputs:Key1=Value1;Key2=Value2;...

可选。 指定配置代理时要使用的其他设置和值。

例如,“GvfsProjectName”和“GvfsRepositoryName”的值可用于配置用于 Git 虚拟文件系统的 Git 存储库 (GVFS) (在 TFS 2018 Update 1)

先决条件

若要使用 Proxy 命令,你必须是 Team Foundation Administrators 安全组的成员和代理服务器上的管理员。 有关详细信息,请参阅Azure DevOps Server的权限参考。

备注

使用 Proxy 命令更新 Azure DevOps 代理服务器的现有配置。 您不能为该代理的初始安装和配置使用 Proxy 命令。

示例

以下示例演示如何将名为 FABRIKAM 的Azure DevOps Server部署添加到代理列表中。

TFSConfig Proxy /add /Server:http://www.fabrikam.com:8080/tfs 

以下示例演示如何使用个人访问令牌将托管在Azure DevOps Services上的项目集合添加到代理列表中以进行身份验证。 此令牌仅用于将代理注册到 Azure DevOps Services 帐户 - 默认服务帐户仍将用于运行代理。 在 TFS 2018 Update 1 中添加了此参数,以支持在无需登录提示的情况下向 Azure DevOps Services 注册代理。

TFSConfig Proxy /add /Collection:https://HelenaPetersen.tfs.visualstudio.com/PhoneSaver 

以下示例演示如何将项目集合添加到代理列表。 此示例使用个人访问令牌对使用“/Collection”参数指定的集合进行身份验证。 要使用的个人访问令牌将保存到“c:\PersonalAccessToken.txt”的文件

TFSConfig Proxy /add /Collection:https://HelenaPetersen.tfs.visualstudio.com/PhoneSaver
            /PersonalAccessTokenFile:c:\PersonalAccessToken.txt

The following example shows how to change the service account used by the proxy for the project collection hosted on Azure DevOps Services. The collection is named PhoneSaver, the account name used for Azure DevOps Services is HelenaPetersen.fabrikam.com, and the service account used by the proxy is being changed to "My Proxy Service Account". Because the account name contains spaces, quotation marks are used to enclose the name.

```console
TFSConfig Proxy /change /Collection:https://HelenaPetersen.tfs.visualstudio.com/PhoneSaver
            /account:"My Proxy Service Account"

以下示例演示如何添加用于 GVFS 的 Git 存储库。

TFSConfig Proxy /add /Collection:https://HelenaPetersen.tfs.visualstudio.com/PhoneSaver /inputs:GvfsProjectName=PhoneSaver;GvfsRepositoryName=AnotherRepository

RebuildWarehouse

可以使用 rebuildWarehouse 命令重新生成SQL Server Reporting Services和SQL Server Analysis Services Azure DevOps Server使用的数据库。

TfsConfig rebuildWarehouse /analysisServices | /all [/ReportingDataSourcePassword:Password]
选项 描述
analysisServices 如果未使用 /all ,则为必需。 指定仅重新生成 Analysis Services 的数据库。 如果 Analysis Services 不存在任何数据库,则还必须使用 /reportingDataSourcePassword 选项。
all 如果未使用 /analysisServices, 则为必需。 指定将重新生成Azure DevOps Server使用的所有报告和分析数据库。
reportingDataSourcePassword 如果 TFS_Analysis 数据库不存在,则是必需的。 指定用作 SQL Server Reporting Services (TFSReports) 数据源帐户的帐户的密码。 有关详细信息,请参阅Azure DevOps Server中的服务帐户和依赖项

先决条件

若要使用 rebuildWarehouse 命令,你必须是以下组的成员:

  • Azure DevOps 管理员安全组和运行 Azure DevOps 管理控制台的服务器或服务器上的管理员安全组

  • 运行用于托管Azure DevOps Server数据库的SQL Server实例的服务器或服务器上的 sysadmin 组

有关详细信息,请参阅Azure DevOps Server的权限参考

备注

移动或拆分项目集合、还原数据或者更改部署的配置时,可以使用此命令。

若要以交互方式重新生成这些数据库,可以使用 Azure DevOps 管理控制台中的报告节点。 有关详细信息,请参阅 打开 Azure DevOps 管理控制台

示例

以下示例演示如何重新生成 Analysis Services 数据库以部署Azure DevOps Server。

TfsConfig rebuildWarehouse /analysisServices

    TFSConfig - Team Foundation Server Configuration Tool
    Copyright � Microsoft Corporation. All rights reserved.
    The Analysis Services database was successfully rebuilt.

可以使用 RebuildWarehouse 命令重新生成 Visual Studio Team Foundation Server (TFS) 使用的SQL Server Reporting Services和SQL Server Analysis Services数据库。

TFSConfig RebuildWarehouse /analysisServices | /all [/ReportingDataSourcePassword:Password]

选项

说明

/analysisServices

如果未使用 /all ,则为必需。

指定仅重新生成 Analysis Services 的数据库。

如果 Analysis Services 不存在数据库,则还必须使用 /reportingDataSourcePassword 选项。

/all

如果未使用 /analysisServices ,则为必需。

指定将重新生成Azure DevOps Server使用的所有报告和分析数据库。

/reportingDataSourcePassword: 密码

如果 TFS_Analysis 数据库不存在,则是必需的。

指定用作 SQL Server Reporting Services (TFSReports) 数据源帐户的帐户的密码。

有关详细信息,请参阅Azure DevOps Server中的服务帐户和依赖项

先决条件

若要使用 RebuildWarehouse 命令,你必须是以下组的成员:

  • 运行 Azure DevOps 管理控制台的服务器或服务器上的 Team Foundation Administrators 安全组和管理员安全组

  • 运行托管数据库Azure DevOps Server SQL Server实例的服务器或服务器上的 sysadmin 组

有关详细信息,请参阅Azure DevOps Server的权限参考

备注

移动或拆分项目集合、还原数据或者更改部署的配置时,可以使用此命令。

若要以交互方式重新生成这些数据库,可以使用 Azure DevOps 管理控制台中的报告节点。 有关详细信息,请参阅 打开 Azure DevOps 管理控制台>。

示例

以下示例演示如何重新生成 Analysis Services 数据库以部署Azure DevOps Server。

TFSConfig RebuildWarehouse /analysisServices

TFSConfig - Team Foundation Server Configuration Tool
Copyright � Microsoft Corporation. All rights reserved.
The Analysis Services database was successfully rebuilt.

RegisterDB

使用 registerDB 更新托管Azure DevOps Server中配置数据库的服务器的名称。 将配置数据库还原到新的硬件或更改部署的域时,您可使用此命令。

TfsConfig registerDB /sqlInstance:<serverName> /databaseName:<databaseName>
选项 描述
SQLInstance 必需。 如果要使用默认实例以外的实例,请指定运行SQL Server的服务器的名称和实例的名称。 如果指定实例,则必须使用以下格式: ServerName\InstanceName
databaseName 必需。 指定配置数据库的名称。 默认情况下,此名称为 Tfs_Configuration。

先决条件

若要使用 registerDB 命令,必须是 Azure DevOps 应用程序层服务器上的 Azure DevOps 管理员组的成员,并且必须是 Azure DevOps 的数据层服务器上的 SQL Server 中的 sysadmin 组的成员。 有关详细信息,请参阅Azure DevOps Server的权限参考

备注

使用此命令之前,请备份Azure DevOps Server的数据库。

若要使 registerDB 命令成功,必须运行以下应用程序池和程序:

  • Azure DevOps Server应用程序池 (应用程序池)
  • ReportServer (应用程序池)
  • SQL Server Reporting Services (程序)

您必须提供配置数据库的确切名称或地址,然后才能正常运行此命令。 如果必须更改存储此数据库的服务器,必须确保Azure DevOps Server指向新位置。

示例

以下示例将Azure DevOps Server重定向到位于SQL Server实例TeamDatabases中的服务器上的ContosoMain配置数据库。

TfsConfig registerDB /SQLInstance:ContosoMain\TeamDatabases /databaseName:Tfs_Configuration

使用 RegisterDB 更新在 Visual Studio Team Foundation Server (TFS) 中托管配置数据库的服务器的名称。 将配置数据库还原到新的硬件或更改部署的域时,您可使用此命令。

TFSConfig RegisterDB /SQLInstance:ServerName /databaseName: DatabaseName [/usesqlalwayson]

Argument

说明

/SQLInstance: ServerName

必需。 如果要使用默认实例以外的实例,请指定运行SQL Server的服务器的名称和实例的名称。

如果指定实例,则必须使用以下格式: ServerName\InstanceName

/databaseName: DatabaseName

必需。 指定配置数据库的名称。 默认情况下,此名称为 Tfs_Configuration。

/usesqlalwayson

可选。 指定数据库是SQL Server中Always On可用性组的一部分。

配置后,此选项将在连接字符串中设置 MultiSubnetFailover。

有关详细信息,请参阅 [Always On可用性组 (SQL Server) ] (/sql/database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server。

先决条件

若要使用 RegisterDB 命令,必须是 Azure DevOps 应用程序层服务器上的 Team Foundation Administrators 组的成员,并且必须是 Azure DevOps 数据层服务器上的 SQL Server 中的 sysadmin 组的成员。 有关详细信息,请参阅Azure DevOps Server的权限参考

备注

使用此命令之前,请备份Azure DevOps Server的数据库。

若要 RegisterDB 命令成功,必须运行下列应用程序池和程序:

  • Azure DevOps Server应用程序池 (应用程序池)
  • ReportServer (应用程序池)
  • SQL Server Reporting Services (程序)

您必须提供配置数据库的确切名称或地址,然后才能正常运行此命令。 如果必须更改存储此数据库的服务器,必须确保Azure DevOps Server指向新位置。

示例

以下示例将Azure DevOps Server重定向到位于 SQL Server 实例 TeamDatabases 中的服务器 ContosoMain 上的配置数据库。

TFSConfig RegisterDB /SQLInstance:ContosoMain\TeamDatabases /databaseName:Tfs_Configuration

RemapDB

remapDB 命令将Azure DevOps Server重定向到其数据库,这些数据库存储在多个服务器上,并且正在还原、移动或更改部署的配置。 例如,如果项目集合托管在与配置数据库的单独服务器或服务器上,则必须将Azure DevOps Server重定向到任何数据库。 如果这些数据库托管在与配置数据库不同的服务器或实例上,还必须将Azure DevOps Server重定向到运行SQL Server Analysis Services或SQL Server Reporting Services的服务器。

TfsConfig remapDBs /DatabaseName:ServerName;DatabaseName /SQLInstances:ServerName1,ServerName2
	[/AnalysisInstance:<serverName>] [/AnalysisDatabaseName:<databaseName>]
	[/preview] [/continue]
选项 说明
DatabaseName 指定承载要映射的数据库的服务器的名称,除了数据库本身的名称外,还指定要映射Azure DevOps Server的数据库的名称。
SQLInstances 指定运行SQL Server的服务器的名称,如果想要使用默认实例以外的实例,则还指定实例的名称。

如果要指定多个服务器,则必须使用逗号分隔多个服务器和实例名称对。
AnalysisInstance 可选。 指定承载SQL Server Analysis Services的服务器和实例的名称。 使用此选项可指定托管 Analysis Services 数据库的服务器和实例。
AnalysisDatabaseName 可选。 如果在使用 /AnalysisInstance 选项指定的服务器上有多个此类数据库,则指定要与 Azure DevOps Server 一起使用的 Analysis Services 数据库的名称。
预览 可选。 显示更新配置时必须执行的操作。
continue 可选。 指定即使尝试查找一个或多个数据库期间发生错误, RemapDB 命令也应继续。 如果使用 /continue 选项,则未在指定的服务器或服务器上找到其数据库的任何集合将重新配置为使用托管配置数据库的服务器和实例。

先决条件

若要使用 remapDBs 命令,你必须是 Azure DevOps Administrators 安全组的成员,并且是Azure DevOps Server使用的任何SQL Server数据库的 sysadmin 安全组的成员。 有关详细信息,请参阅Azure DevOps Server的权限参考

备注

使用 remapDB 命令重新配置Azure DevOps Server以使用原始安装中的服务器和实例中的服务器和实例的不同服务器和SQL Server实例。

示例

以下示例演示如何将Azure DevOps Server重定向到其配置数据库TFS_Configuration。 此数据库托管 ContosoMain 在命名实例 TeamDatabases上。 其项目集合数据库存储在两 ContosoMain\TeamDatabases 个数据库和默认实例上 Contoso2

TfsConfig remapDBs /DatabaseName:ContosoMain\TeamDatabases;TFS_Configuration
	/SQLInstances:ContosoMain\TeamDatabases,Contoso2

RemapDBs 命令将Azure DevOps Server重定向到其数据库,当数据库存储在多个服务器上,并且正在还原、移动或更改部署的配置。 例如,如果 TFS 托管在与配置数据库的单独服务器或服务器上,则必须将 TFS 重定向到项目集合的任何数据库。 如果这些数据库托管在单独的服务器或实例上,则还必须将 TFS 重定向到运行SQL Server Analysis Services或SQL Server Reporting Services的服务器或服务器。

TFSConfig RemapDBs /DatabaseName:ServerName;DatabaseName /SQLInstances:ServerName1,ServerName2
        [/AnalysisInstance:ServerName] [/AnalysisDatabaseName:DatabaseName]
        [/preview] [/continue] [/usesqlalwayson]

选项

说明

/DatabaseName

指定托管要映射Azure DevOps Server的数据库的服务器的名称,以及数据库本身的名称。

/SQLInstances: ServerName1,ServerName2

指定运行SQL Server的服务器的名称,如果想要使用默认实例以外的实例,还指定实例的名称。

如果要指定多个服务器,则必须使用逗号分隔多个服务器和实例名称对。

/AnalysisInstance: ServerName

可选。 指定承载SQL Server Analysis Services的服务器和实例的名称。

使用此选项可指定托管 Analysis Services 数据库的服务器和实例。

/AnalysisDatabaseName: DatabaseName

可选。 如果在使用 /AnalysisInstance 选项指定的服务器上有多个此类数据库,则指定要与 Azure DevOps Server 一起使用的 Analysis Services 数据库的名称。

/preview

可选。 显示更新配置时必须执行的操作。

/continue

可选。 指定即使尝试查找一个或多个数据库期间发生错误, RemapDB 命令也应继续。

如果使用 /continue 选项,则未在指定的服务器或服务器上找到其数据库的任何集合将重新配置为使用托管配置数据库的服务器和实例。

/usesqlalwayson

可选。 指定数据库是SQL Server中Always On可用性组的一部分。

配置后,此选项将在连接字符串中设置 MultiSubnetFailover。

有关详细信息,请参阅 [Always On可用性组 (SQL Server) ] (/sql/database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server。

先决条件

若要使用 RemapDBs 命令,你必须是 Team Foundation Administrators 安全组的成员,并且是Azure DevOps Server使用的任何SQL Server数据库的 sysadmin 安全组的成员。 有关详细信息,请参阅Azure DevOps Server的权限参考

备注

可以使用 RemapDBs 命令重新配置Azure DevOps Server,以使用原始安装中的服务器和实例中的不同服务器和SQL Server实例。

示例

以下示例演示如何将Azure DevOps Server重定向到其配置数据库TFS_Configuration。 此数据库托管在命名实例 TeamDatabases 上的 ContosoMain 上。 其项目集合数据库存储在 ContosoMain\TeamDatabases 和 Contoso2 上的默认实例上。

TFSConfig RemapDBs /DatabaseName:ContosoMain\TeamDatabases;TFS_Configuration
            /SQLInstances:ContosoMain\TeamDatabases,Contoso2

RepairJobQueue

使用 repairJobQueue 命令修复已停止为部署和集合主机运行的计划作业。

TfsConfig repairJobQueue

先决条件

若要使用 repairJobQueue 命令,你必须是运行 TfsConfig 的计算机上的本地管理员组的成员。 对于Azure DevOps Server部署使用的所有SQL Server实例,还必须是 sysadmin 安全角色的成员。

备注

如果发现任何计划作业未运行,通常使用 repairJobQueue 命令。
该命令不采用任何参数,并且需要配置Azure DevOps Server部署。

示例

TfsConfig repairJobQueue

命令可用性: TFS 2015

使用 RepairJobQueue 命令修复已停止为部署和集合主机运行的计划作业。

TfsConfig repairJobQueue

先决条件

若要使用 RepairJobQueue 命令,你必须是运行 TfsConfig 的计算机上的本地管理员组的成员。 对于Azure DevOps Server部署使用的所有SQL Server实例,还必须是 sysadmin 安全角色的成员。

备注

如果发现任何计划作业未运行,通常使用 RepairJobQueue 命令。
该命令不采用任何参数,并且需要配置Azure DevOps Server部署。

示例

TFSConfig repairJobQueue

设置

可以使用设置命令自动更改通知接口使用的统一资源定位符 (URL) ,以及用于Azure DevOps Server的服务器地址。 默认情况下,通知接口 URL 和服务器 URL 在Azure DevOps Server匹配,但可以配置单独的 URL。 例如,你可能想要对Azure DevOps Server生成的自动电子邮件使用不同的 URL。 必须从应用层运行此工具以更新所有服务器,以使它们使用新的 URL。

若要以交互方式更改这些 URL 或仅查看当前设置,可以使用适用于 Azure DevOps 的管理控制台。 请参阅 管理任务快速参考

TfsConfig settings [/publicURL:URL]
选项 描述
publicUrl 指定 Azure DevOps 的应用程序层服务器的 URL。 此值存储在 Azure DevOps 的配置数据库中。

先决条件

必须是 Azure DevOps 管理员安全组的成员和应用程序层服务器上的管理员组。 有关详细信息,请参阅设置Azure DevOps Server的管理员权限

备注

设置命令在部署 Azure DevOps Server 时更改服务器到服务器通信的连接信息。 /publicURL 中指定的 URL 必须可用于部署中的所有服务器。

示例

以下示例将 NotificationURL 的值更改为 http://contoso.example.com/tfs ServerURL http://contoso.example.com:8080/tfs的值。

TfsConfig settings /publicURL:http://contoso.example.com:8080/tfs

可以使用“设置”命令自动更改统一资源定位符 (URL) ,该 URL 由通知接口和Azure DevOps Server的服务器地址使用。 默认情况下,通知接口 URL 和服务器 URL 在Azure DevOps Server匹配,但你可以配置单独的 URL。 例如,你可能想要对Azure DevOps Server生成的自动电子邮件使用不同的 URL。 必须从应用层运行此工具以更新所有服务器,以使它们使用新的 URL。

若要以交互方式更改这些 URL 或仅查看当前设置,可以使用 Azure DevOps 的管理控制台。 请参阅 管理任务快速参考

TFSConfig Settings [/ServerURL:URL] [/NotificationURL:URL]

选项

说明

/ServerURL: Url

指定 Azure DevOps 的应用程序层服务器的 URL。 此值存储在 Azure DevOps 的配置数据库中。

/NotificationURL: Url

指定在电子邮件警报文本中使用的 URL(如果该 URL 与 Azure DevOps 的应用程序层服务器的 URL 不同)。 此值存储在配置数据库中。

先决条件

你必须是应用层服务器上的“Team Foundation Administrators”安全组和“Administrators”组的成员。 有关详细信息,请参阅设置Azure DevOps Server的管理员权限

备注

设置”命令在部署 Azure DevOps Server 中更改服务器到服务器通信的连接信息。 /ServerURL 中指定的 URL 必须可用于部署中的所有服务器。

示例

以下示例将 NotificationURL 的值和 http://contoso.example.com/tfs ServerURL 的值更改为 http://contoso.example.com:8080/tfs

TFSConfig Settings /NotificationURL:http://contoso.example.com/tfs /ServerURL:http://contoso.example.com:8080/tfs

设置

使用 安装程序 命令卸载当前在运行该命令的计算机上配置的功能。

TfsConfig setup /uninstall:<feature[,feature,...]>

选项

说明

/uninstall

指定要从运行命令的计算机卸载的一个或多个功能。 选项包括:All、ApplicationTier、Search 和 VersionControlProxy。

先决条件

若要使用 安装 命令,你必须是 Azure DevOps 管理员安全组的成员。

示例

以下示例从当前计算机卸载所有Azure DevOps Server功能。

TfsConfig setup /uninstall:All

以下示例从当前计算机中卸载应用程序层和生成功能。

TfsConfig setup /uninstall:ApplicationTier 

TCM

升级到最新版本的Azure DevOps Server时,系统会自动尝试升级测试管理组件,包括测试计划和套件。

如果自动迁移失败,请使用 TCM 命令手动将测试计划和测试套件升级到其各自的工作项类型 (WIT) 。

TFSConfig TCM /upgradeTestPlans|upgradeStatus /CollectionName:CollectionName /TeamProject:TeamProjectName

选项

说明

/upgradeTestPlans

除非使用 /upgradeStatus ,否则是必需的。

转换现有测试计划和测试套件以指向基于工作项的测试计划和测试套件。 它还更新现有测试管理数据以及其他现有测试项目之间的链接,例如测试套件、测试运行和测试结果。

/upgradeStatus

除非使用 /upgradeTestPlans ,否则是必需的。

报告指定项目的测试数据的迁移状态。 它还指示指定的项目是否有任何测试计划。

/CollectionName:CollectionName

必需。 指定包含要为其迁移测试数据或检查迁移状态的项目的项目集合。

如果项目集合的名称中有空格,请将名称括在引号中,例如“Fabrikam Fiber Collection”。

/TeamProjectName:TeamProjectName

必需。 指定要为其迁移测试数据或检查迁移状态的项目。 必须在使用 /collectionName 参数指定的集合中定义此项目。

如果项目名称中有空格,请将名称括在引号中,例如“我的项目”。

先决条件

你必须是“Team Foundation Administrators”安全组的成员,而且是应用程序层服务器上的管理员。

请参阅设置Azure DevOps Server的管理员权限

备注

应用程序层服务器必须升级到最新版本的 Azure DevOps Server 2019 才能使用此命令。

你必须先将测试计划工作项定义和测试计划类别导入该项目,才能使用 TCM 命令。

若要了解有关迁移的详细信息以及何时使用此命令,请参阅 手动更新以支持测试管理

TCM 命令应用于单个项目。 如果需要在多个项目中升级测试计划,则必须单独针对每个项目运行它。

必须从用于Azure DevOps Server的工具目录中运行 TCM 命令。 默认情况下,该位置为: drive:\%programfiles%\TFS 12.0\Tools

仅当自动迁移现有测试数据失败时,才使用 TCM 命令。

若要详细了解迁移以及何时使用此命令, 请手动更新以支持测试管理。 如果无法访问在服务器升级发生前定义的测试计划或测试套件,请运行 TFSConfig TCM upgradeStatus 来确定迁移的状态。

为单个项目运行 TCM 命令。 如果需要升级多个项目,则必须依次针对每个项目运行该项目。

示例

以下示例演示如何检查默认项目集合上托管的 Fabrikam Fiber 项目上测试计划升级的状态, (DefaultCollection) :

tfsconfig tcm /upgradeStatus /CollectionName:DefaultCollection /TeamProject:"Fabrikam Fiber"

升级到最新版本的Azure DevOps Server时,系统会自动尝试升级测试管理组件,包括测试计划和套件。

如果自动迁移失败,请使用 TCM 命令手动将测试计划和测试套件升级到其各自的工作项类型 (WIT) 。

TFSConfig TCM /upgradeTestPlans|upgradeStatus /CollectionName:CollectionName /TeamProject:TeamProjectName

选项

说明

/upgradeTestPlans

除非使用 /upgradeStatus ,否则是必需的。

转换现有测试计划和测试套件以指向基于工作项的测试计划和测试套件。 它还更新现有测试管理数据以及其他现有测试项目之间的链接,例如测试套件、测试运行和测试结果。

/upgradeStatus

除非使用 /upgradeTestPlans ,否则是必需的。

报告指定项目的测试数据的迁移状态。 它还指示指定的项目是否有任何测试计划。

/CollectionName:CollectionName

必需。 指定包含要为其迁移测试数据或检查迁移状态的项目的项目集合。

如果项目集合的名称中有空格,请将名称括在引号中,例如“Fabrikam Fiber Collection”。

/TeamProjectName:TeamProjectName

必需。 指定要为其迁移测试数据或检查迁移状态的项目。 必须在使用 /collectionName 参数指定的集合中定义此项目。

如果项目名称中有空格,请将名称括在引号中,例如“我的项目”。

先决条件

你必须是“Team Foundation Administrators”安全组的成员,而且是应用程序层服务器上的管理员。

请参阅设置Azure DevOps Server的管理员权限

备注

应用程序层服务器必须升级到最新版本的 Azure DevOps Server才能使用此命令。

你必须先将测试计划工作项定义和测试计划类别导入该项目,才能使用 TCM 命令。

若要了解有关迁移的详细信息以及何时使用此命令,请参阅 手动更新以支持测试管理

TCM 命令应用于单个项目。 如果需要升级多个项目中的测试计划,则必须单独针对每个项目运行它。

必须从工具目录中运行 TCM 命令才能Azure DevOps Server。 默认情况下,该位置为: drive:\%programfiles%\TFS 12.0\Tools

仅当自动迁移现有测试数据失败时,才使用 TCM 命令。

若要了解有关迁移的详细信息以及何时使用此命令, 请手动更新以支持测试管理

如果无法访问服务器升级之前定义的测试计划或测试套件,请运行 TFSConfig TCM upgradeStatus 来确定迁移的状态。

为单个项目运行 TCM 命令。 如果需要升级多个项目,则必须依次针对每个项目运行它。

示例

以下示例演示如何在默认项目集合上托管的 Fabrikam Fiber 项目上检查测试计划升级的状态, (DefaultCollection) :

tfsconfig tcm /upgradeStatus /CollectionName:DefaultCollection /TeamProject:"Fabrikam Fiber"

无人参与

命令可用性:Azure DevOps Server 2019

无人参与命令适用于熟悉Azure DevOps Server和配置过程的用户,以及需要在不同计算机上安装Azure DevOps Server的用户。

例如,如果使用 Azure DevOps Build,可以使用 无人参与 命令使用相同的配置文件安装多个生成服务器。

使用 /create 选项创建无人参与文件。 此文件定义Azure DevOps Server安装的所有配置参数。 接下来,使用 /configure 选项实际执行配置。

此过程允许从头到尾配置Azure DevOps Server,而无需在安装过程中提供输入。 在多个安装情况下,这还能帮助确保在多个服务器之间使用完全相同的配置参数。

TfsConfig unattend /create|configure /type:InstallType /unattendfile:ConfigurationFileName 
    [/inputs:Key1=Value1; Key2=Value2;...] [/verify] [/continue]
选项 说明
create 使用你指定的名称和参数创建无人参与文件。
配置 使用指定的无人参与文件和参数配置Azure DevOps Server。 必须对此选项使用 /type 或 /unattendfile。
类型 指定要使用的配置类型。 使用 /configure 时,要求 /type 或 /unattendfile,但是你不能同时使用这二者。
unattendfile 指定要创建或使用的无人参与文件,具体取决于初始参数是 /create 还是 /configure。 使用 /configure 时,要求 /unattendfile 或 /type。
inputs 可选。 如果你使用 /create,则指定创建无人参与文件时要使用的设置和值。 如果你使用 /configure,则指定要与无人参与文件结合使用的其他设置和值。

作为使用 /inputs 的替代方式,你可以使用任何纯文本编辑器手动编辑无人参与文件。 对于某些输入类型(例如 ServiceAccountPassword 或 PersonalAccessToken),这是必需的,因为无法使用 /inputs 参数设置这些机密值。
验证 可选。 指定一个配置运行,该运行仅完成基于无人参与文件、输入和配置类型的验证检查。 这是执行完整配置的替代方法。
continue 可选。 指定 /create 或 /configure 应忽略来自验证检查的警告并继续操作。
InstallType 描述
NewServerBasic 配置Azure DevOps Server的基本开发服务。 这包括源代码管理、工作项、生成和可选搜索。
NewServerAdvanced 配置基本开发服务,并允许可选配置与Reporting Services的集成。
升级 从受支持的上一版本升级到当前版本Azure DevOps Server。
PreProductionUpgrade 在预生产环境中测试现有Azure DevOps Server部署的升级。 这通常是使用从生产备份还原的数据库完成的。 此方案包括其他步骤,以确保新部署不会干扰生产部署。
ApplicationTierOnlyBasic 使用提供的配置数据库中的现有设置配置新的应用程序层。 使用此选项,可以使用现有设置快速启动和运行新的应用程序层。 如果希望能够更改现有设置,请改用高级 ApplicationTierOnlyAdvanced 类型。
ApplicationTierOnlyAdvanced 配置一个新的应用程序层,并完全控制所有设置。 设置将默认为提供的配置数据库中的现有值。 如果要保留所有现有设置,请改用 ApplicationTierOnlyBasic 类型。
克隆 配置新的Azure DevOps Server部署,这是现有部署的克隆。 通常,使用从生产备份还原的数据库来创建可以测试配置更改、扩展和其他修改的环境。 此方案包括其他步骤,以确保新部署不会干扰生产部署。
代理 配置版本控制代理服务。

先决条件

  • 你必须是安装该软件的计算机上“Administrators”组的成员。

  • 根据安装的类型,你可能还需要其他的管理员权限。

例如,如果使用无人参与命令安装Azure DevOps Server,则必须是支持Azure DevOps Server的SQL Server实例上的 sysadmin 组的成员。 有关详细信息,请参阅添加服务器级管理员Azure DevOps Server的 Q & A 部分。

备注

在使用无人参与命令配置Azure DevOps Server之前,必须创建将用作部署一部分的服务帐户。 你还必须为选中的安装类型安装任何必备软件。 这包括Azure DevOps Server本身。 必须安装Azure DevOps Server,但不必对其进行配置,因为无人参与命令会为你执行此操作。

无人参与命令配置Azure DevOps Server组件。 它不会执行软件的初始安装。 在计算机上存在位后,它将根据你的规范配置软件。

示例

以下示例演示如何为基本安装 Azure DevOps Server创建无人参与文件。

TfsConfig unattend /create /type:basic /unattendfile:configTFSBasic.ini

在本示例中,将在与命令相同的目录中创建无人参与文件。 将作为命令的一部分创建日志文件,并且将作为执行命令的一部分,在命令中返回文件的位置。

以下示例演示如何在配置过程中指定用于 GVFS 的 Git 存储库。

TfsConfig unattend /configure /type:proxy /inputs:ProjectCollectionUrl=http://FabrikamFiberTFS:8080/tfs/defaultcollection;GvfsProjectName=Fabrikam-Fiber-Git;GvfsRepositoryName=TestGit

以下示例演示如何为 Azure DevOps 代理服务器的配置创建无人参与文件。

重要

在此示例中,如果管理员想要使用个人访问令牌进行身份验证,则需要手动编辑文件以指定个人访问令牌值。 为此,可以在创建的无人参与文件中为个人访问令牌添加一行,例如: PersonalAccessToken=PersonalAccessTokenValue

TfsConfig unattend /create /type:proxy "/inputs:ProjectCollectionUrl=http://FabrikamFiberTFS:8080/tfs/defaultcollection" /unattendFile:c:\unattend.txt

以下示例演示如何为用作FabrikamFiber\BuildSVC生成服务帐户的服务器上的Azure DevOps Server生成配置创建无人参与文件,然后使用该无人参与文件配置Azure DevOps Server生成。

重要

在本示例中,在创建无人参与文件后,管理员将手动编辑该文件以指定生成服务帐户的密码。 Adding the password as an input using ServiceAccountPassword=Password; doesn't add the password information to the file.

TfsConfig unattend /create /type:build /unattendfile:configTFSBuild.ini
    /inputs:IsServiceAccountBuiltIn=false;ServiceAccountName=FabrikamFiber\\BuildSVCTFSConfig
TfsConfig unattend /configure /unattendfile:configTFSBuild.ini

第一个命令将返回以下信息:

Microsoft (R) TfsConfig - Team Foundation Server Configuration Tool
Copyright (c) Microsoft Corporation. All rights reserved.

Command: unattend
Logging sent to file C:\ProgramData\Microsoft\Team Foundation\Server Configuration\Logs\TFS_Build Configuration_0512_203133.log

第二个命令返回以下信息,包括配置 FabrikamFiberTFS Azure DevOps Build 的服务器的名称,以及与控制器 DefaultCollection关联的项目集合:

    Microsoft (R) TfsConfig - Team Foundation Server Configuration Tool
    Copyright (c) Microsoft Corporation. All rights reserved.

    Command: unattend

    ---------------------------------------------
            Inputs:
    ---------------------------------------------

    Feedback
            Send Feedback: True

    Build Resources
            Configuration Type: create
            Agent Count: 1
            New Controller Name: FabrikamFiberTFS - Controller
            Clean Up Resources: False

    Project Collection
            Collection URL: http://FabrikamFiberTFS:8080/tfs/defaultcollection

    Windows Service
            Service Account: FabrikamFiber\BuildSVC
            Service Password: ********

    Advanced Settings *
            Port: 9191

    ---------------------------------------------
            Running Readiness Checks
    ---------------------------------------------

    [1/2] System Verifications
    [2/2] Build Service Verifications

    ---------------------------------------------
            Configuring
    ---------------------------------------------

            root
    [1/4] Install Team Foundation Build Service
            Installing Windows services ...
            Adding service account to groups ...
            Setting ACL on a windows service
    [2/4] Enable Event Logging
            Adding event log sources ...
            Token replace a config file
            RegisterBuildEtwProvider
            Configuring ETW event sources ...
    [3/4] Register with Team Foundation Server
            Registering the build service
    [4/4] Start Team Foundation Build Service
            StartBuildHost
            Starting Windows services ...
            Marking feature configured status
    [Info] [Register with Team Foundation Server] Firewall exception added for port
    9191

    TeamBuild completed successfully.
    Logging sent to file C:\ProgramData\Microsoft\Team Foundation\Server Configuration\Logs\TFS_Build Configuration_0512_203322.log

命令可用性: TFS 2018、TFS 2017、TFS 2015、TFS 2013

无人参与命令专为熟悉Azure DevOps Server和配置过程的用户以及需要在不同计算机上安装Azure DevOps Server的用户而设计。

例如,如果使用 Team Foundation Build,则可以使用 无人参与 命令使用相同的配置文件安装多个生成服务器。

使用 无人参与 /create 选项创建无人参与文件。 此文件定义Azure DevOps Server安装的所有配置参数。 接下来,使用 无人参与 /configure 选项实际执行配置。

此过程允许从头到尾配置Azure DevOps Server,而无需在安装过程中提供输入。 在多个安装情况下,这还能帮助确保在多个服务器之间使用完全相同的配置参数。

TFSConfig unattend /create|unattend /type:InstallType /unattendfile:ConfigurationFileName [/inputs:Key1=Value1; Key2=Value2;...] [/verify] [/continue]

选项

说明

/create

使用你指定的名称和参数创建无人参与文件。

/configure

使用指定的无人参与文件和参数配置Azure DevOps Server。

必须对此选项使用 /type 或 /unattendfile。

/type:InstallType

指定要使用的配置类型。

  • 基本:在基本配置中配置Azure DevOps Server,包括SQL Server Express。

  • 标准:在标准单服务器配置中配置Azure DevOps Server。

  • ATOnly:为现有Azure DevOps Server部署配置其他应用程序层。

  • Build:配置 Team Foundation Build Service。

  • 代理:配置 Azure DevOps 代理服务器。

  • SPInstall:安装和配置 SharePoint Foundation 2013 以用于Azure DevOps Server部署。

  • 升级:将以前版本的Azure DevOps Server升级到最新版本的软件。

在使用 /configure 运行此命令之前,你必须已本地下载和安装该版本。

  • SPExtensions:配置用于Azure DevOps Server的 SharePoint 扩展。

使用 /configure 时,要求 /type 或 /unattendfile,但是你不能同时使用这二者。

/unattendfile:ConfigurationFileName

指定要创建或使用的无人参与文件,具体取决于初始参数是 /create 还是 /configure。 使用 /configure 时,要求 /unattendfile 或 /type。

/inputs:Key1=Value1;Key2=Value2;...

可选。 如果你使用 /create,则指定创建无人参与文件时要使用的设置和值。

如果你使用 /configure,则指定要与无人参与文件结合使用的其他设置和值。

作为使用 /inputs 的替代方式,你可以使用任何纯文本编辑器手动编辑无人参与文件。

对于某些输入类型(如 ServiceAccountPassword 或 PersonalAccessToken),这是必需的,因为无法使用 /inputs 参数设置这些机密值。

/verify

可选。 指定一个配置运行,该运行仅完成基于无人参与文件、输入和配置类型的验证检查。

这是执行完整配置的替代方法。

/continue

可选。 指定 /create 或 /configure 应忽略来自验证检查的警告并继续操作。

/?

可选。 提供 Unattend 命令的命令行帮助。

先决条件

  • 你必须是安装该软件的计算机上“Administrators”组的成员。

  • 根据安装的类型,你可能还需要其他的管理员权限。 例如,如果使用无人参与命令安装Azure DevOps Server,则必须是支持Azure DevOps Server的 SQL Server 实例上的 sysadmin 组的成员。 有关详细信息,请参阅设置Azure DevOps Server管理员权限的 Q & A 部分。

备注

在使用无人参与命令配置Azure DevOps Server之前,必须创建将用作部署一部分的服务帐户。 你还必须为选中的安装类型安装任何必备软件。 这包括Azure DevOps Server本身。 必须安装Azure DevOps Server但不必对其进行配置,因为无人参与命令会为你执行此操作。

无人参与命令配置Azure DevOps Server组件。 它不会执行软件的初始安装。 在计算机上存在位后,它将根据你的规范配置软件。

示例

以下示例演示如何为基本安装 Azure DevOps Server创建无人参与文件。

TFSConfig Unattend /create /type:basic /unattendfile:configTFSBasic.ini

在本示例中,将在与命令相同的目录中创建无人参与文件。 将作为命令的一部分创建日志文件,并且将作为执行命令的一部分,在命令中返回文件的位置。

以下示例演示如何在配置过程中指定用于 GVFS 的 Git 存储库。

TFSConfig Unattend /configure /type:proxy /inputs:ProjectCollectionUrl=http://FabrikamFiberTFS:8080/tfs/defaultcollection;GvfsProjectName=Fabrikam-Fiber-Git;GvfsRepositoryName=TestGit

以下示例演示如何为 Azure DevOps 代理服务器的配置创建无人参与文件。

重要: 在此示例中,如果管理员想要使用个人访问令牌进行身份验证,则需要手动编辑文件以指定个人访问令牌值。 为此,可以在创建的无人参与文件中为个人访问令牌添加一行,例如:“PersonalAccessToken=PersonalAccessTokenValue”。

TfsConfig Unattend /create /type:proxy "/inputs:ProjectCollectionUrl=http://FabrikamFiberTFS:8080/tfs/defaultcollection" /unattendFile:c:\unattend.txt

下面的示例演示了如何通过将“FabrikamFiber\BuildSVC”用作生成服务帐户,然后使用无人参与文件配置 Team Foundation Build,在服务器上为 Team Foundation Build 的配置创建无人参与文件。

重要提示:
在本示例中,在创建无人参与文件后,管理员将手动编辑该文件以指定生成服务帐户的密码。 使用“ServiceAccountPassword=Password”将密码添加为输入不会将密码信息添加到文件中。

TFSConfig Unattend /create /type:build /unattendfile:configTFSBuild.ini
        /inputs:IsServiceAccountBuiltIn=false;ServiceAccountName=FabrikamFiber\\BuildSVCTFSConfig
        Unattend /configure /unattendfile:configTFSBuild.ini

第一个命令将返回以下信息:

Microsoft (R) TfsConfig - Team Foundation Server Configuration Tool
Copyright (c) Microsoft Corporation. All rights reserved.

Command: unattend
Logging sent to file C:\ProgramData\Microsoft\Team Foundation\Server Configuration\Logs\TFS_Build Configuration_0512_203133.log

第二个命令返回以下信息,包括配置 Team Foundation Build 的服务器的名称, (FabrikamFiberTFS) 以及与控制器关联的项目集合 (DefaultCollection) :

Microsoft (R) TfsConfig - Team Foundation Server Configuration Tool
Copyright (c) Microsoft Corporation. All rights reserved.

Command: unattend

---------------------------------------------
        Inputs:
---------------------------------------------

Feedback
        Send Feedback: True

Build Resources
        Configuration Type: create
        Agent Count: 1
        New Controller Name: FabrikamFiberTFS - Controller
        Clean Up Resources: False

Project Collection
        Collection URL: http://FabrikamFiberTFS:8080/tfs/defaultcollection

Windows Service
        Service Account: FabrikamFiber\BuildSVC
        Service Password: ********

Advanced Settings *
        Port: 9191


---------------------------------------------
        Running Readiness Checks
---------------------------------------------

[1/2] System Verifications
[2/2] Build Service Verifications

---------------------------------------------
        Configuring
---------------------------------------------

        root
[1/4] Install Team Foundation Build Service
        Installing Windows services ...
        Adding service account to groups ...
        Setting ACL on a windows service
[2/4] Enable Event Logging
        Adding event log sources ...
        Token replace a config file
        RegisterBuildEtwProvider
        Configuring ETW event sources ...
[3/4] Register with Team Foundation Server
        Registering the build service
[4/4] Start Team Foundation Build Service
        StartBuildHost
        Starting Windows services ...
        Marking feature configured status
[Info] [Register with Team Foundation Server] Firewall exception added for port
9191


TeamBuild completed successfully.
Logging sent to file C:\ProgramData\Microsoft\Team Foundation\Server Configuration\Logs\TFS_Build Configuration_0512_203322.log

ZipLogs

ziplogs 命令旨在收集日志并删除 zip。ProgramData\Microsoft\Azure DevOps\Server Configuration

TfsConfig zipLogs

TfsConfig zipLogs