使用 TFSConfig 管理本地 Azure DevOps

Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2013

备注

Azure DevOps Server 以前名为 Visual Studio Team Foundation Server。

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

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

重要

内容版本选择器

若要查看可用于你的平台的内容,请确保从目录上方的版本选择器中选择此文的正确版本。 功能支持会有所不同,具体取决于你使用的是 Azure DevOps Services 还是本地版本的 Azure DevOps Server(之前称为 Team Foundation Server (TFS))。

若要了解正在使用哪个本地版本,请查看我使用的是哪个平台/版本?

备注

对于 TFS 2010 及更早版本, TFSAdminUtils 命令行工具中提供了几个命令。

命令行工具位置

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

  • 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 命令的完整列表,请使用 help 命令:

TFSConfig help

若要获取单个命令的帮助,请使用 " 帮助 " 命令并指定要获取其帮助的命令的名称。 例如,若要获取 accounts 命令的帮助:

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 方案。 如果某些集合无法访问,请使用 continue 标志。 以后可以再次运行 Add,以更新任何丢失的集合。 将帐户添加到将帐户用作服务帐户所需的组。
设置 仅将服务设置为使用已添加到资源的帐户。 适用于 NLB 方案。
删除 从所有资源中删除帐户。 删除帐户时应该采取预防措施,因为它可能会导致其他服务器获得拒绝的服务。
ResetOwner 如果数据库作为移动、克隆或灾难恢复的一部分进行还原,则数据库所有者可以切换到还原服务器的管理员。 此选项会访问所有数据库,将 dbo 登录名设置到当前所有者。
AccountType 说明
AdminConsole 管理控制台用户是已被授予跨各种资源使用控制台的最低权限的用户。
ApplicationTier 更改核心 Web 服务的 appPool 上的服务帐户。 (TFSService)
代理 更改代理 Web 服务的 appPool 上的服务帐户。 (TFSProxy)
ReportingDataSource 更改报表用于访问报表数据的帐户。 (TFSReports)

默认值为 ApplicationTier

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

添加或更改帐户时,使用 continue 选项。 对于这些操作,将在每个集合数据库中更改帐户。 如果提供了 continue,如果无法访问集合,它将继续。 当它们可到达时,可以再次运行它。

备注

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

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

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

ServerName\InstanceName。
databaseName 仅与 /ResetOwner 一起使用

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

先决条件

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

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

如果使用 /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"

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

备注

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

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 |代理

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

默认值为 ApplicationTier。

/Account:

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

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

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

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

/Password: 权限

指定服务帐户的密码。

注意: 如果你使用的是没有密码的系统帐户或帐户(如 Network Service),则此参数是可选的。

/SQLInstance: 服务器

仅与 /ResetOwner 一起使用。

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

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

Servername\instancename。

/DatabaseName: Database

仅与 /ResetOwner 一起使用。

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

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

/continue

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

/usesqlalwayson

仅用于与 /SQLInstance/DatabaseName 结合使用的 /ResetOwner

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

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

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

先决条件

若要使用 " 帐户 " 命令,您必须是

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

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

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

备注

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

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

帐户 命令支持本地 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 仓库" 数据库的所有权更改为运行该命令所用的用户帐户。

备注

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

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 必需。 Team Project 集合的 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

必需。 集合Project 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,请参阅将报表添加到项目

示例

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

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 |沟通

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

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

/siteType

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

先决条件

若要使用 身份验证 命令,你必须是应用层服务器或代理服务器上的 "Azure DevOps Administrators" 安全组和 "本地管理员" 的成员,具体取决于 随 viewall 选项的值。

备注

要为 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 |沟通

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

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

/siteType

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

先决条件

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

备注

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

使用 身份验证 命令更改身份验证协议之前,可以使用 /viewAll 选项运行命令,以查看现有设置的定义。

示例

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

TFSConfig Authentication /viewAll

证书

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

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

先决条件

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

备注

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

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

使用 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、安全套接字层Azure DevOps Server SSL (SSL) 和证书的部署中为客户端身份验证配置证书的方法。

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

选项

说明

/machine

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

/disable

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

/autoSelect

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

/noprompt

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

/thumbprints: 指纹

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

先决条件

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

备注

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

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

可以使用 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。

备注

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 指定为特定集合(而不是为 Azure DevOps 实例和其他集合)创建新的实例 id。

先决条件

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

备注

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

示例

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

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

ChangeServerID 命令将更改与 TFS 的数据库相关联的 guid。 Guid 在 TFS 部署中必须是唯一的。 如果多个数据库具有相同的 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 中 AlwaysOn 可用性组的一部分。 配置后,此选项将在连接字符串中设置 MultiSubnetFailover。

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

先决条件

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

备注

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

示例

下面的示例演示如何在 Azure DevOps Server 的 Contoso1 部署中更改所有数据库的 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 选项从编制索引中排除这些文件。

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

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

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

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

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

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

先决条件

若要使用 codeIndex 命令,你必须是管理员Azure DevOps组的成员。 请参阅权限参考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 选项从编制索引中排除这些文件。
对于此选项,需要 2013 Team Foundation Server Update 3 或更高版本。

/reindexAll

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

/destroyCodeIndex [/noPrompt]

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

/temporaryDataSizeLimit[view | SizeInGBs | disable]

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

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

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

对于此选项,你将需要 Team Foundation Server 2013 更新4或更高版本。

/indexHistoryPeriod[view | all | NumberOfMonths]

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

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

对于此选项,你将需要 Team Foundation Server 2013 更新4或更高版本。

collectionNameCollectionName

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

collectionIdCollectionId

指定运行 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"

集合

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

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 指定项目集合的名称。 如果集合的名称包含空格,则必须用引号将该名称括起来 (例如, " "我的集合" ") 。 如果使用 /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 中手动删除数据库。

先决条件

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

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

备注

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

示例

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

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

指定项目集合的名称。 如果集合的名称包含空格,则必须用引号将该名称括起来 (例如, " "我的集合" ") 。

如果使用 /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。 此选项主要用作拆分项目集合的一部分。

先决条件

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

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

备注

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

示例

下面的示例演示如何从 Azure DevOps Server 的部署中永久删除 "Contoso 夏季暂存项目" 项目集合。

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 夏季实习项目" 项目集合,将其命名为 "Contoso 冬季实习项目",并将复制的集合附加到 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 命令,你必须是指定实例的 sysadmin 角色SQL Server成员。

备注

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

示例

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

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 命令,你必须是指定实例的 sysadmin 角色SQL Server成员。

备注

如果要将数据库从支持列存储索引的 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>### 先决条件若要使用 configureMail 命令,你必须是应用程序层服务器上 Team Foundation 管理员Azure DevOps组的成员。 有关详细信息,请参阅应用程序的权限Azure DevOps Server### 备注还可使用管理控制台将 Azure DevOps Server配置为使用 SMTP 服务器。### 示例以下示例演示用于将 的电子邮件地址和 SMTP 邮件服务器配置为 的 TFS@contoso.com 语法 ContosoMailServerTfsConfig 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 命令,你必须是指定实例的 sysadmin 角色SQL Server成员。

备注

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

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

示例

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

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 命令,你必须是指定实例的 sysadmin 角色SQL Server成员。

备注

如果要将数据库从支持压缩的 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 命令,你必须是指定实例的 sysadmin 角色SQL Server成员。

备注

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

示例

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

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 命令,你必须是指定实例的 sysadmin 角色SQL Server成员。

备注

使用 /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\\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 域更改为在域中具有匹配名称的帐户的 sid ContosoPrime 。 只有匹配的帐户名称已经更新其 SID。 例如,如果 hholt 帐户以和形式存在 Contoso1\hholt ContosoPrime\hholt ,则帐户 sid 将更改为的 SID ContosoPrime\hholt 。 如果该 ContosoPrime\hholt 帐户不存在,则将不会更新 SID Contoso1\hholt

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

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

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

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

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 标识 [/change/fromdomain: DomainName1/todomain: DomainName2 [/account: AccountName] [/toaccount: AccountName]] [/sqlInstance: ServerName/databaseName: DatabaseName] [/account: AccountName] [/usesqlalwayson]

选项

说明

/change

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

/fromdomain: 域名

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

/todomain: 域名

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

/account:

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

/toaccount:

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

/SQLInstance: 服务器

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

服务器名称\实例名称

/DatabaseName: Database

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

/usesqlalwayson

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

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

先决条件

若要使用 标识 命令,你必须是 "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 \ 开发人员" 和 "Contoso1 测试人员"), \ 有助于简化跨 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" \ 。 如果"Contoso一 \ hholt"帐户不存在,将不会为 Contoso1 \ hholt 更新 SID。

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

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

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

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

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"

作业

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

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

先决条件

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

备注

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

示例

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

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 管理员安全组的成员。 有关详细信息,请参阅 Azure DevOps Server 的权限参考

备注

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

示例

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

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

Lab/delete

使用 TfsConfig Lab /Delete 选项从指定的项目集合中删除所有组主机、库共享和环境。 默认情况下,不会删除 SCVMM System Center Virtual Machine Manager (中的) 对象。 可以将 /External 选项添加到命令行,以从项目集合和 SCVMM 中删除对象。

TfsConfig Lab /Delete /CollectionName:collectionName [/External] [/NoPrompt]
选项 描述
CollectionName:collectionName 必需。 指定应用程序层上项目集合的名称Azure DevOps Server。
外部 可选。 指定后,除了删除项目集合中的对象外,还删除 SCVMM 中的库共享和主机组。 如果 未指定 /External,TfsConfig Lab /Delete 命令仅删除项目集合中的对象。
NoPrompt 可选。 指定后, 不显示进度和成功信息。

备注

若要分离项目集合的实验室配置,请使用 /Delete 命令从项目集合中删除实验室资产。 当将项目集合从一个实例Azure DevOps Server另一个实例,并且新的 Azure DevOps Server 实例使用与原始实例不同的 SCVMM 服务器时,这非常有用。 在这种情况下,必须删除所有实验室资产,并重新配置项目集合的实验室。

备注

只有在命令行上未指定 /LibraryShare/GroupHost 选项时,/Delete 选项才适用于项目集合中的所有实验室资产。 有关详细信息,请参阅 TFSConfig Lab /LibraryShare 命令TFSConfig Lab /HostGroup 命令

示例

在下面的示例中,将删除 DefaultCollection 项目集合中所有实验室对象。 由于 未指定 /External 选项,因此对象保留在 SCVMM 中。

tfsconfig lab /delete /collectionName:DefaultCollection

使用 TfsConfig Lab /Delete 选项从指定的项目集合中删除所有组主机、库共享和环境。 默认情况下,不会删除 SCVMM System Center Virtual Machine Manager (中的) 对象。 可以将 /External 选项添加到命令行,以从项目集合和 SCVMM 中删除对象。

TfsConfig Lab /Delete /CollectionName:collectionName [/External] [/NoPrompt]
选项 描述
CollectionName:collectionName 必需。 指定应用程序层上项目集合的名称Azure DevOps Server。
外部 可选。 指定后,除了删除项目集合中的对象外,还删除 SCVMM 中的库共享和主机组。 如果 未指定 /External,TfsConfig Lab /Delete 命令仅删除项目集合中的对象。
NoPrompt 可选。 指定后, 不显示进度和成功信息。

备注

若要分离项目集合的实验室配置,请使用 /Delete 命令从项目集合中删除实验室资产。 当将项目集合从一个实例Azure DevOps Server另一个实例,并且新的 Azure DevOps Server 实例使用与原始实例不同的 SCVMM 服务器时,这非常有用。 在这种情况下,必须删除所有实验室资产,并重新配置项目集合的实验室。

备注

只有在命令行上未指定 /LibraryShare/GroupHost 选项时,/Delete 选项才适用于项目集合中的所有实验室资产。 有关详细信息,请参阅 TFSConfig Lab /LibraryShare Commands (。。 /tfsconfig-cmd.md#lab-libraryshare) TFSConfig Lab /HostGroup 命令

示例

在下面的示例中,将删除 DefaultCollection 项目集合中所有实验室对象。 由于 未指定 /External 选项,因此对象保留在 SCVMM 中。

tfsconfig lab /delete /collectionName:DefaultCollection

Lab/dns

TfsConfig Lab /DNS 命令添加、删除或显示由网络隔离环境Visual Studio 实验室管理工具版创建的 DNS 记录。

    TfsConfig Lab /DNS 
    {/Add | /Delete | /List}
        [/CollectionName:collectionName |
        / CollectionName:collectionName /TeamProject:projectName |
        / CollectionName:collectionName /TeamProject:projectName /LabEnvironment:environmentUri |
        /Name:FQDN /IP:IpAddress]
        [/NoPrompt]
选项 描述
添加 添加指定的 DNS 记录。 若要使用 /Add 选项,目标环境必须正在运行。
删除 删除指定的 DNS 记录。
列表 显示指定的 DNS 记录。
LabEnvironment:environmentUri 面向 environmentUri 指定的单个网络隔离环境的 /Add、/Delete 或 /List 选项。

若要使用 LabEnvironment 选项,还必须指定 /Collection/TeamProject 选项。
TeamProject:projectName 在没有 /LabEnvironment 的情况下使用时,将 /Add、/Delete/List 选项面向 projectName 指定的项目中所有网络隔离的环境。 否则 ,/TeamProject 指定包含环境的项目。

若要使用 /TeamProject 选项,还必须指定 /Collection 选项
CollectionName:collectionName 在没有 /TeamProject 的情况下使用时,将 /Add、/Delete/List 选项设定为集合中由 collectionName 指定的所有网络隔离环境。 否则 ,/Collection 指定包含项目的项目集合。
名称: FQDN 指定包含要面向的环境的网络位置的完全限定域名。

必须同时指定 /Name 和 /IP 选项。
IP: IPAddress 指定要面向的环境的 IP 地址。

必须同时指定 /Name 和 /IP 选项。

备注

Azure DevOps Server在网络隔离的环境中向每个虚拟机注册唯一的外部名称时输入的后缀。 通过 DNS 别名记录,隔离网络外部的计算机和其他对象可以与隔离网络内部的计算机通信。 由于Azure DevOps Server DNS 区域注册别名记录,因此运行 Azure DevOps 的服务帐户必须有权在指定的 DNS 区域中添加或删除别名记录。

如果你的 Team Foundation Server 部署具有多个应用层,且每个应用层在不同的服务帐户下运行,则每个应用层服务帐户必须拥有编辑由其他应用层创建的 DNS 别名记录的权限。

备注

DNS 记录管理由系统自动实验室管理工具版。 应仅在以下情况下使用 /DNS 命令:

  • 更改运行此帐户Azure DevOps Server帐户。
  • 将项目集合从一个实例移动到Azure DevOps Server一个实例。

在这两种情况下,必须删除使用旧 Azure DevOps Server 服务帐户创建的 DNS 记录,然后使用新的 Azure DevOps Server 服务帐户重新创建相同的 DNS 记录。 如果上述方案中未执行这些步骤,则新的 Azure DevOps Server 服务帐户将无法执行这些 DNS 记录的自动管理。 因此,用户将无法连接到虚拟环境。

TfsConfig Lab /DNS 命令行上仅指定 /Add、/Delete/List 选项之一。 如果未指定任何目标选项,该操作将作用于属于数据库内所有项目集合的所有网络隔离环境Team Foundation Server虚拟机。

若要将 实验室管理工具版 对象层次结构中对象的网络隔离环境的 DNS 条目作为目标,请使用 /Collection、/TeamProject/LabEnvironment 选项的适当组合

  • /LabEnvironment 选项将 命令面向指定的网络隔离环境。 必须将 /CollectionName/TeamProject 选项与 /LabEnvironment 选项一起用于指定项目集合和包含环境的项目。

    使用 environmentID vstfs:///LabManagement/LabEnvironment/ 格式指定环境 URI。 可以在 (环境查看器) 环境查看器中查看环境标识符实验室管理工具版或者从 SCVMM 管理员控制台 中的虚拟机说明查看环境标识符。

  • /TeamProject 选项将操作面向指定项目中的隔离网络环境。 /TeamProject 选项必须与 /CollectionName 选项一起使用,并且 /CollectionName 选项必须指定包含该项目的项目集合。

  • /CollectionName 选项针对指定项目集合中的网络隔离环境的操作。

面向网络隔离环境的第二种方式是使用 /Name/IP 选项指定单个虚拟机的完全限定的外部名称和外部 IP 地址。 必须在命令行上 同时指定 /Name/IP 选项。 可以在虚拟机的环境查看器中查看虚拟机的外部名称和外部 IP 地址实验室管理工具版或者从 SCVMM 中虚拟机的说明管理员控制台。

示例

第一个示例将项目中所有网络隔离环境的记录添加到 DNS。 第二个示例删除单个 DNS 记录。

tfsconfig lab /dns /add /collectionname:Collection0 /teamproject:Project1
tfsconfig lab /dns /delete /name:0b668996-2736-46d2-88ac-0733acbd0d9c.contoso.com /ip:111.00.000.000

TfsConfig Lab /DNS 命令添加、删除或显示由网络隔离环境Visual Studio 实验室管理工具版创建的 DNS 记录。

TfsConfig Lab /DNS 
{/Add | /Delete | /List}
    [/CollectionName:collectionName |
    / CollectionName:collectionName /TeamProject:projectName |
    / CollectionName:collectionName /TeamProject:projectName /LabEnvironment:environmentUri |
    /Name:FQDN /IP:IpAddress]
    [/NoPrompt]
选项 描述
添加 添加指定的 DNS 记录。 若要使用 /Add 选项,目标环境必须正在运行。
删除 删除指定的 DNS 记录。
列表 显示指定的 DNS 记录。
LabEnvironment:environmentUri 面向 environmentUri 指定的单个网络隔离环境的 /Add、/Delete 或 /List 选项。

若要使用 LabEnvironment 选项,还必须指定 /Collection/TeamProject 选项。
TeamProject:projectName 在没有 /LabEnvironment 的情况下使用时,将 /Add、/Delete/List 选项面向 projectName 指定的项目中所有网络隔离的环境。 否则 ,/TeamProject 指定包含环境的项目。

若要使用 /TeamProject 选项,还必须指定 /Collection 选项
CollectionName:collectionName 在没有 /TeamProject 的情况下使用时,将 /Add、/Delete/List 选项设定为集合中由 collectionName 指定的所有网络隔离环境。 否则 ,/Collection 指定包含项目的项目集合。
名称: FQDN 指定包含要面向的环境的网络位置的完全限定域名。

必须同时指定 /Name 和 /IP 选项。
IP: IPAddress 指定要面向的环境的 IP 地址。

必须同时指定 /Name 和 /IP 选项。

备注

Azure DevOps Server在网络隔离的环境中向每个虚拟机注册唯一的外部名称时输入的后缀。 通过 DNS 别名记录,隔离网络外部的计算机和其他对象可以与隔离网络内部的计算机通信。 由于Azure DevOps Server DNS 区域注册别名记录,因此运行 Azure DevOps 的服务帐户必须有权在指定的 DNS 区域中添加或删除别名记录。

如果Azure DevOps Server部署具有多个应用程序层,并且每个应用程序层在不同的服务帐户下运行,则每个应用程序层服务帐户都必须有权编辑由其他应用程序层创建的 DNS 别名记录。

备注

DNS 记录管理由系统自动实验室管理工具版。 应仅在以下情况下使用 /DNS 命令:

  • 更改运行此帐户Azure DevOps Server帐户。
  • 将项目集合从一个实例移动到Azure DevOps Server一个实例。

在这两种情况下,必须删除使用旧 Azure DevOps Server 服务帐户创建的 DNS 记录,然后使用新的 Azure DevOps Server 服务帐户重新创建相同的 DNS 记录。 如果上述方案中未执行这些步骤,则新的 Azure DevOps Server 服务帐户将无法执行这些 DNS 记录的自动管理。 因此,用户将无法连接到虚拟环境。

TfsConfig Lab /DNS 命令行上仅指定 /Add、/Delete/List 选项之一。 如果未指定任何目标选项,该操作将作用于属于数据库内所有项目集合的所有网络隔离环境Azure DevOps Server虚拟机。

若要将 实验室管理工具版 对象层次结构中对象的网络隔离环境的 DNS 条目作为目标,请使用 /Collection、/TeamProject/LabEnvironment 选项的适当组合

  • /LabEnvironment 选项将 命令面向指定的网络隔离环境。 必须将 /CollectionName/TeamProject 选项与 /LabEnvironment 选项一起用于指定项目集合和包含环境的项目。

    使用 environmentID vstfs:///LabManagement/LabEnvironment/ 格式指定环境 URI。 可以在 (环境查看器) 环境查看器中查看环境标识符实验室管理工具版或者从 SCVMM 管理员控制台 中的虚拟机说明查看环境标识符。

  • /TeamProject 选项将操作面向指定项目中的隔离网络环境。 /TeamProject 选项必须与 /CollectionName 选项一起使用,并且 /CollectionName 选项必须指定包含该项目的项目集合。

  • /CollectionName 选项针对指定项目集合中的网络隔离环境的操作。

面向网络隔离环境的第二种方式是使用 /Name/IP 选项指定单个虚拟机的完全限定的外部名称和外部 IP 地址。 必须在命令行上 同时指定 /Name/IP 选项。 可以在虚拟机的环境查看器中查看虚拟机的外部名称和外部 IP 地址实验室管理工具版或者从 SCVMM 管理员控制台 中的虚拟机说明查看。

示例

第一个示例将项目中所有网络隔离环境的记录添加到 DNS。 第二个示例删除单个 DNS 记录。

REM First example
tfsconfig lab /dns /add /collectionname:Collection0 /teamproject:Project1

REM Second example
tfsconfig lab /dns /delete /name:0b668996-2736-46d2-88ac-0733acbd0d9c.contoso.com /ip:111.00.000.000

Lab/hostgroup

使用 TfsConfig Lab /HostGroup 命令添加、编辑或删除将 SCVMM System Center Virtual Machine Manager (主机组) 到项目集合的分配。

按此方式分配的主机组由 Visual Studio 实验室管理工具版。

TfsConfig Lab /hostgroup /CollectionName:collectionName
  { /Add 
/SCVMMHostGroup:vmmHostPath 
/Name:name 
[LabEnvironmentPlacementPolicy:{Conservative|Aggressive}]
[/AutoProvision:{True|False}]
[/DNSSuffix:dnsSuffix]
| /Delete 
/Name:name
[/NoPrompt]
| /Edit 
/Name:name
{[/AutoProvision:{True|False}] 
[/LabEnvironmentPlacementPolicy:{Conservative|Aggressive}] 
[/DNSSuffix:dnsSuffix]}
[/NoPrompt]]
| /List
| /ListSCVmmHostGroups }

选项

说明

CollectionName:collectionName

必需。 应用程序层上项目集合的名称Azure DevOps Server。

添加

将指定的 SCVMM 主机组添加到项目集合主机组。 必须使用"添加" 指定 /SCVmmHostGroup/Name 选项

删除

从项目集合中删除指定的主机组。 必须使用 Delete 指定 /Name 选项

编辑

为主机组设置一个或两实验室管理工具版 AutoProvisionLabEnvironmentPlacementPolicy 属性。

必须使用"编辑 "指定 /Name 选项以及至少一个 /AutoProvision/LabEnvironmentPlacementPolicy 选项

SCVMMHostGroup:vmmH ostGroupPath

对于 /Add 选项 是必需的。 指定 SCVMM 主机组的主机路径。

名称: 名称

对于 /Add、/Delete/Edit 选项是必需的。 指定要添加、删除或编辑的项目集合主机组的名称。

AutoProvision:{True | False}

对于 /Add 或 /Edit 选项 是可选的 。 将 (True) , (主机) AutoProvision 属性中清除 False。 AutoProvision 指定是否自动将主机组分配给集合中的每个项目。 默认情况下,使用 TfsConfig Lab/HostGroup 命令时,主机组将分配给集合中的项目。

LabEnvironmentPlacementPolicy:{保守 | 攻击}

对于 /Add 或 /Edit 选项 是可选的 。 指定实验室管理工具版部署新虚拟实验室环境的主机组中物理计算机的方式。

  • 保守 (默认) 。 在部署决策中考虑没有运行的虚拟环境。 这包括所有虚拟机,这些虚拟机也是"已停止"状态 " 的环境的 " 一部分。
  • 主动 在部署决策中不考虑未运行的虚拟环境。

DNSSuffix:[dnsSuffix]

可选。 设置主机组中虚拟计算机的 或 DNS 后缀。

  • 如果在未指定 dnsSuffix 值的情况下指定了 /DNSSuffix: 选项,则将虚拟计算机后缀的 DNS 后缀设置或重置为主机组中主机的后缀。
  • 如果未使用 /Add 选项指定 /DNSSuffix 选项,则虚拟计算机的后缀将设置为主机组中其主机计算机的后缀。
  • 如果未使用 /Edit 选项指定 /DNSSuffix 选项,则虚拟计算机的后缀不会更改。

NoPrompt

对于 /Delete 或 /Edit 选项 是可选的 。 不提示用户进行确认。

列表

显示分配给项目集合的主机组。

ListSCVmmHostGroups

显示 SCVMM 中可用的主机组。

备注

主机组是管理员在 SCVMM 中创建的容器,用于对一组虚拟机主机进行分组,以便更轻松地进行管理。

主机组为分层结构;主机组可包含其他主机组。

每个主机组由其主机路径标识,即指定 SCVMM 中主机组层次结构内主机或主机组位置的主机组名称序列。

所有主机路径以根主机组开头。

例如,主机路径 VMHost05 属于主机组 Site21,该主机组是主机组 New York 的子 All Hosts\\New York\\Site21\\VMHost05 主机组。

在命令行上仅使用 /Add、/Delete/Edit 选项之一。 使用单独的 TfsConfig Lab /HostGroup 命令行将多个主机组分配给项目集合。

还可使用 TfsConfig Lab /HostGroup 命令设置特定于以下实验室管理工具版:

  • AutoProvision 指定是否将主机组分配给项目集合中的每个项目。

默认情况下,启用 AutoProvision。

若要将项目集合中的主机组分配给单个项目,请使用 TFSLabConfig CreateTeamProjectHostGroup 命令

  • True (默认值) 。 主机组分配给项目集合中的每个项目。

  • False。 宿主组未分配给项目集合中的每个项目。

  • LabEnvironmentPlacementPolicy 实验室管理工具版在主机组中物理计算机上部署新环境时,是否考虑现有虚拟机。

  • 保守 (默认) 。 在部署决策中考虑没有运行的虚拟环境。 这包括属于环境的一部分且同时处于“已停止”状态的所有虚拟机。

  • 主动 在部署决策中不考虑未运行的虚拟环境。

  • DNSSuffix 指定用于主机组中创建的虚拟计算机的 DNS 后缀。 下表介绍 /DNSSuffix 设置如何影响虚拟计算机的 DNS 后缀。

DNSSuffix /Add /Edit
DNSSuffix:dnsValue DNS 后缀设置为 dnsValue。 DNS 后缀设置为 dnsValue。
DNSSuffix: 从主计算机继承 DNS 后缀。 删除现有的后缀值并且从主计算机继承 DNS 后缀。
<未指定> 从主计算机继承 DNS 后缀。 DNS 后缀未更改。

示例

在下面的示例中,将 SCVMM 主机组分配给项目集合。

由于 未指定 /AutoProvision 选项,因此会自动将主机组分配给集合中的所有项目。

tfsconfig lab /hostgroup /add /scvmmhostgroup:"All Hosts\Lab1\HostGroup1" /collection:Collection0
        /name:Lab1Collection0_Lab1_HostGroup1

使用 TfsConfig Lab /HostGroup 命令添加、编辑或删除将 SCVMM System Center Virtual Machine Manager (主机组) 到项目集合的分配。

按此方式分配的主机组由 Visual Studio 实验室管理工具版。

TfsConfig Lab /hostgroup /CollectionName:collectionName
  { /Add 
/SCVMMHostGroup:vmmHostPath 
/Name:name 
[LabEnvironmentPlacementPolicy:{Conservative|Aggressive}]
[/AutoProvision:{True|False}]
[/DNSSuffix:dnsSuffix]
| /Delete 
/Name:name
[/NoPrompt]
| /Edit 
/Name:name
{[/AutoProvision:{True|False}] 
[/LabEnvironmentPlacementPolicy:{Conservative|Aggressive}] 
[/DNSSuffix:dnsSuffix]}
[/NoPrompt]]
| /List
| /ListSCVmmHostGroups }

选项

说明

CollectionName:collectionName

必需。 应用程序层上项目集合的名称Azure DevOps Server。

添加

将指定的 SCVMM 主机组添加到项目集合主机组。 必须使用"添加" 指定 /SCVmmHostGroup/Name 选项

删除

从项目集合中删除指定的主机组。 必须使用 Delete 指定 /Name 选项

编辑

为主机组设置一个或两实验室管理工具版 AutoProvisionLabEnvironmentPlacementPolicy 属性。

必须使用"编辑 "指定 /Name 选项以及至少一个 /AutoProvision/LabEnvironmentPlacementPolicy 选项

SCVMMHostGroup:vmmH ostGroupPath

对于 /Add 选项 是必需的。 指定 SCVMM 主机组的主机路径。

名称: 名称

对于 /Add、/Delete/Edit 选项是必需的。 指定要添加、删除或编辑的项目集合主机组的名称。

AutoProvision:{True | False}

对于 /Add 或 /Edit 选项 是可选的 。 将 (True) 或 (主机) AutoProvision 属性中清除 False。 AutoProvision 指定是否自动将主机组分配给集合中的每个项目。 默认情况下,使用 TfsConfig Lab/HostGroup 命令时,主机组将分配给集合中的项目。

LabEnvironmentPlacementPolicy:{保守 | 攻击}

对于 /Add 或 /Edit 选项 是可选的 。 指定实验室管理工具版部署新虚拟实验室环境的主机组中物理计算机的方式。

  • 保守 (默认) 。 在部署决策中考虑没有运行的虚拟环境。 这包括所有虚拟机,这些虚拟机也是"已停止"状态 " 的环境的 " 一部分。
  • 主动 在部署决策中不考虑未运行的虚拟环境。

DNSSuffix:[dnsSuffix]

可选。 设置主机组中虚拟计算机的 或 DNS 后缀。

  • 如果在未指定 dnsSuffix 值的情况下指定了 /DNSSuffix: 选项,则将虚拟计算机后缀的 DNS 后缀设置或重置为主机组中主机的后缀。
  • 如果未使用 /Add 选项指定 /DNSSuffix 选项,则虚拟计算机的后缀将设置为主机组中其主机计算机的后缀。
  • 如果未使用 /Edit 选项指定 /DNSSuffix 选项,则虚拟计算机的后缀不会更改。

NoPrompt

对于 /Delete 或 /Edit 选项 是可选的 。 不提示用户进行确认。

列表

显示分配给项目集合的主机组。

ListSCVmmHostGroups

显示 SCVMM 中可用的主机组。

备注

主机组是管理员在 SCVMM 中创建的容器,用于对一组虚拟机主机进行分组,以便更轻松地进行管理。

主机组为分层结构;主机组可包含其他主机组。

每个主机组由其主机路径标识,即指定 SCVMM 中主机组层次结构内主机或主机组位置的主机组名称序列。

所有主机路径以根主机组开头。

例如,主机路径 VMHost05 属于主机组 Site21,该主机组是主机组 New York 的子 All Hosts\\New York\\Site21\\VMHost05 主机组。

在命令行上仅使用 /Add、/Delete/Edit 选项之一。 使用单独的 TfsConfig Lab /HostGroup 命令行将多个主机组分配给项目集合。

还可使用 TfsConfig Lab /HostGroup 命令设置特定于以下实验室管理工具版:

  • AutoProvision 指定是否将主机组分配给项目集合中的每个项目。

默认情况下,启用 AutoProvision。

若要将项目集合中的主机组分配给单个项目,请使用 TFSLabConfig CreateTeamProjectHostGroup 命令

  • True (默认值) 。 主机组分配给项目集合中的每个项目。

  • False。 宿主组未分配给项目集合中的每个项目。

  • LabEnvironmentPlacementPolicy 实验室管理工具版在主机组中物理计算机上部署新环境时,是否考虑现有虚拟机。

  • 保守 (默认) 。 在部署决策中考虑没有运行的虚拟环境。 这包括属于环境的一部分且同时处于“已停止”状态的所有虚拟机。

  • 主动 在部署决策中不考虑未运行的虚拟环境。

  • DNSSuffix 指定用于主机组中创建的虚拟计算机的 DNS 后缀。 下表介绍 /DNSSuffix 设置如何影响虚拟计算机的 DNS 后缀。

DNSSuffix /Add /Edit
DNSSuffix:dnsValue DNS 后缀设置为 dnsValue。 DNS 后缀设置为 dnsValue。
DNSSuffix: 从主计算机继承 DNS 后缀。 删除现有的后缀值并且从主计算机继承 DNS 后缀。
<未指定> 从主计算机继承 DNS 后缀。 DNS 后缀未更改。

示例

在下面的示例中,将 SCVMM 主机组分配给项目集合。

由于 未指定 /AutoProvision 选项,因此会自动将主机组分配给集合中的所有项目。

tfsconfig lab /hostgroup /add /scvmmhostgroup:"All Hosts\Lab1\HostGroup1" /collection:Collection0
/name:Lab1Collection0_Lab1_HostGroup1

Lab/libraryshare

你可以使用 TfsConfig Lab/LibraryShare 命令来添加、删除或编辑从 System Center Virtual Machine Manager (SCVMM) 到项目集合的库共享分配。 你还可以使用此命令集特定于 Visual Studio 实验室管理工具版的属性,并显示当前已分配到实验室管理工具版中的集合或显示 SCVMM 中的所有库共享的库共享。

TfsConfig Lab /LibraryShare
    /CollectionName:collectionName
     { /Add 
       /SCVMMLibraryShare:librarySharePath 
       /Name:name 
        [/AutoProvision:{True|False}]
    | /Delete 
       /Name:name 
        [/NoPrompt]
    | /Edit 
       /Name:name 
       /AutoProvision:{True|False} 
        [/NoPrompt]
    | /List
    | /ListSCVMMLibraryShares }
选项 描述
添加 向项目集合中添加指定的库共享。 必须通过 Add 指定 /SCVMMLibraryShare/Name 选项。
删除 从项目集合中删除指定的库共享。 您必须指定带有 Delete/Name 选项。
编辑 设置或清除库共享的 AutoProvision 属性。 必须通过 "编辑" 指定 /Name/AutoProvision 选项。

默认情况下,库共享分配给集合中的项目。

更改自动设置会影响现有项目。
Collectionname: collectionname 必需。 指定应用层 Azure DevOps Server 上的项目集合的名称。
SCVMMLibraryShare: librarysharePath 需要时 添加。 指定 Virtual Machine Manager 库共享的路径。
名称: libraryShareName 需要时 添加删除编辑。 指定项目集合中的库共享的名称。
AutoProvision 添加 时可选;需要进行 编辑。 指定库共享是否自动分配给集合中的每个项目。 默认情况下,库共享分配给项目。
NoPrompt " 添加 " 和 " 编辑" 是可选的。 不提示用户进行确认。
列表 列出分配给指定项目集合的所有库共享。
ListSCVMMLibraryShares 列出 Virtual Machine Manager 中可用的所有库共享。

备注

库共享是 Virtual Machine Manager 库服务器上的指定共享。 对于存储在库服务器上的虚拟实验室管理工具版环境(如 ISO 映像和虚拟硬盘),可以通过库共享来访问基于文件的资源。 库共享是在 Virtual Machine Manager 中创建的。 Visual Studio实验室管理工具版使用库共享在实验室中预配虚拟机。

在 TfsConfig Lab/LibraryShare 命令行上只使用 /add/Edit/delete 选项之一。 使用单独的 TfsConfig Lab/LibraryShare 命令行向集合分配多个库共享。

默认情况下,项目集合中的库共享会自动分配给集合中的每个项目。 可以将 /AutoProvision 选项与 /add/Edit 命令一起使用来更改分配的库共享。

  • /AutoProvision 选项设置为 False 可禁用自动将库共享分配给项目。 若要在单个项目中分配或删除库共享,请使用 TfsLabConfig TfsLabConfig CreateTeamProjectLibraryShare 命令

  • /AutoProvision 选项设置为 True 可启用自动分配。

你可以使用 TfsConfig Lab/LibraryShare 命令来添加、删除或编辑从 System Center Virtual Machine Manager (SCVMM) 到项目集合的库共享分配。 你还可以使用此命令集特定于 Visual Studio 实验室管理工具版的属性,并显示当前已分配到实验室管理工具版中的集合或显示 SCVMM 中的所有库共享的库共享。

TfsConfig Lab /LibraryShare
        /CollectionName:collectionName
        { /Add
            /SCVMMLibraryShare:librarySharePath
            /Name:name
            [/AutoProvision:{True|False}]
        | /Delete
            /Name:name
            [/NoPrompt]
        | /Edit
            /Name:name
            /AutoProvision:{True|False}
            [/NoPrompt]
        | /List
        | /ListSCVMMLibraryShares }
选项 描述
添加 向项目集合中添加指定的库共享。 必须通过 Add 指定 /SCVMMLibraryShare/Name 选项。
删除 从项目集合中删除指定的库共享。 您必须指定带有 Delete/Name 选项。
编辑 设置或清除库共享的 AutoProvision 属性。 必须通过 "编辑" 指定 /Name/AutoProvision 选项。

默认情况下,库共享分配给集合中的项目。

[!NOTE] 更改自动设置会影响现有项目。
Collectionname: collectionname 必需。 指定应用层 Azure DevOps Server 上的项目集合的名称。
SCVMMLibraryShare: librarysharePath 需要时 添加。 指定 Virtual Machine Manager 库共享的路径。
名称: libraryShareName 需要时 添加删除编辑。 指定项目集合中的库共享的名称。
AutoProvision 添加 时可选;需要进行 编辑。 指定库共享是否自动分配给集合中的每个项目。 默认情况下,库共享分配给项目。
NoPrompt " 添加 " 和 " 编辑" 是可选的。 不提示用户进行确认。
列表 列出分配给指定项目集合的所有库共享。
ListSCVMMLibraryShares 列出 Virtual Machine Manager 中可用的所有库共享。

备注

库共享是 Virtual Machine Manager 库服务器上的指定共享。 对于存储在库服务器上的虚拟实验室管理工具版环境(如 ISO 映像和虚拟硬盘),可以通过库共享来访问基于文件的资源。 库共享是在 Virtual Machine Manager 中创建的。 Visual Studio实验室管理工具版使用库共享在实验室中预配虚拟机。

在 TfsConfig Lab/LibraryShare 命令行上只使用 /add/Edit/delete 选项之一。 使用单独的 TfsConfig Lab/LibraryShare 命令行向集合分配多个库共享。

默认情况下,项目集合中的库共享会自动分配给集合中的每个项目。 可以将 /AutoProvision 选项与 /add/Edit 命令一起使用来更改分配的库共享。

  • /AutoProvision 选项设置为 False 可禁用自动将库共享分配给项目。 若要在单个项目中分配或删除库共享,请使用 TfsLabConfig TfsLabConfig CreateTeamProjectLibraryShare 命令

  • /AutoProvision 选项设置为 True 可启用自动分配。


实验室/settings

您可以使用 TFSConfig Lab/设置 选项配置 Visual Studio 实验室管理工具版。 设置选项

  • 设置控制实验室中管理虚拟机的 System Center Virtual Machine Manager (SCVMM) 服务器。

  • 设置网络位置(如网络域或工作组),所有主机组中的物理计算机均可连接到此位置。

  • 设置实验室中网络隔离网络的 IP 地址和 虚拟 DNS 后缀。

TfsConfig Lab
    /Settings
        [/ScVmmServerName:VMMServerName]
        [/NetworkLocation:networkLocation]
        [/IpBlock:networkIsolationIpRange]
        [/DnsSuffix:networkIsolationDnsSuffix] 
        [/NoPrompt]
        [/List]
选项 描述
ScvmmServerName: Vmmservername&gt 可选。 设置 Azure DevOps Server 将使用的 System Center Virtual Machine Manager 2008 (SCVMM) 服务器的完全限定名称。 这是将用于管理虚拟机的 SCVMM 服务器名。 要使 Azure DevOps Server 与 scvmm 进行通信,你必须将运行 Azure DevOps Server 的帐户添加到 scvmm 中的管理员角色。
NetworkLocation: NetworkLocation 可选。 设置网络(如网络域或工作组)的完全限定名,此名称可用于实验室网络中的所有主机。 设置虚拟机时,实验室管理工具版会自动将虚拟机连接到指定网络。 可以使用 SCVMM 管理员控制台在主机上查找可用的网络位置。
IpBlock: networkIsolationIpRange 可选。 设置创建隔离网络时,分配给环境中的虚拟机的 IP 地址的范围。 由于 IP 地址仅用于虚拟机之间的内部路由,并且不会在环境边界之外公开,因此可以指定未在 /NetworkLocation 选项指定的网络内使用的任何 ip 范围。 大多数情况下,可使用默认范围 192.168.23.0/24。 如果在连接网络隔离环境时遇到问题,可能需要选择一个不同的范围。
DnsSuffix: networkIsolationDnsSuffix 可选。 设置将用于注册虚拟环境的隔离网络上的虚拟机的名称的 DNS 后缀。 如需确认是否已在 DNS 层次结构中正确配置该后缀,请与网络管理员联系。
NoPrompt 可选。 不提示确认。 不要将与 /list 选项一起使用。
列表 列出实验室管理工具版的当前配置值。

备注

必须在每个 TfsConfig Lab/设置 命令行上指定一个 /ScvmmServerName/NetworkLocation/IpBlock/DnsSuffix/list 选项。

若要设置实验室管理工具版,必须同时指定 /ScVmmServerName/NetworkLocation 选项。 但,也可在单独的命令行上指定这些选项。

若要设置网络隔离,必须同时指定 /IpBlock/DnsSuffix 选项。 但,也可在单独的命令行上指定这些选项。

网络隔离使你能够使用虚拟机的多个副本,而不发生虚拟机名或 IP 地址冲突。 必须为隔离网络指定一个 DNS 后缀和一个 IP 范围。 由于这些 IP 地址仅用于虚拟机之间的内部路由,并且不会在环境边界之外公开,因此可以指定未在公共网络中使用的任何 IP 范围。 大多数情况下,可使用默认范围 192.168.1.0/24。 如果在连接网络隔离环境时遇到问题,可能需要选择一个不同的范围。

示例

在此示例中,通过在单个命令行上使用 /ScvmmServerName/NetworkLocation 选项来设置实验室管理工具版。

tfsconfig lab /settings /scvmmservername:vmmserver /networklocation:lab1.contoso.com

在此示例中,通过在单独的命令行上使用 /IpBlock/DNSSuffix 选项来配置网络隔离。

tfsconfig lab /settings /ipblock: 192.168.23.0/24
tfsconfig lab /settings /dnssuffix:virtual1.lab1.contoso.com

您可以使用 TFSConfig Lab/设置 选项配置 Visual Studio 实验室管理工具版。 设置选项

  • 设置控制实验室中管理虚拟机的 System Center Virtual Machine Manager (SCVMM) 服务器。

  • 设置网络位置(如网络域或工作组),所有主机组中的物理计算机均可连接到此位置。

  • 设置实验室中网络隔离网络的 IP 地址和 虚拟 DNS 后缀。

    TfsConfig Lab/设置 [/ScVmmServerName: Vmmservername&gt] [/NetworkLocation: networkLocation] [/IpBlock: networkIsolationIpRange] [/DnsSuffix: networkIsolationDnsSuffix] [/NoPrompt] [/List]

选项 描述
ScvmmServerName: Vmmservername&gt 可选。 设置 Azure DevOps Server 将使用的 System Center Virtual Machine Manager 2008 (SCVMM) 服务器的完全限定名称。 这是将用于管理虚拟机的 SCVMM 服务器名。 要使 Azure DevOps Server 与 scvmm 进行通信,你必须将运行 Azure DevOps Server 的帐户添加到 scvmm 中的管理员角色。
NetworkLocation: NetworkLocation 可选。 设置网络(如网络域或工作组)的完全限定名,此名称可用于实验室网络中的所有主机。 设置虚拟机时,实验室管理工具版会自动将虚拟机连接到指定网络。 可以使用 SCVMM 管理员控制台在主机上查找可用的网络位置。
IpBlock: networkIsolationIpRange 可选。 设置创建隔离网络时,分配给环境中的虚拟机的 IP 地址的范围。 由于 IP 地址仅用于虚拟机之间的内部路由,并且不会在环境边界之外公开,因此可以指定未在 /NetworkLocation 选项指定的网络内使用的任何 ip 范围。 大多数情况下,可使用默认范围 192.168.23.0/24。 如果在连接网络隔离环境时遇到问题,可能需要选择一个不同的范围。
DnsSuffix: networkIsolationDnsSuffix 可选。 设置将用于注册虚拟环境的隔离网络上的虚拟机的名称的 DNS 后缀。 如需确认是否已在 DNS 层次结构中正确配置该后缀,请与网络管理员联系。
NoPrompt 可选。 不提示确认。 不要将与 /list 选项一起使用。
列表 列出实验室管理工具版的当前配置值。

备注

必须在每个 TfsConfig Lab/设置 命令行上指定一个 /ScvmmServerName/NetworkLocation/IpBlock/DnsSuffix/list 选项。

若要设置实验室管理工具版,必须同时指定 /ScVmmServerName/NetworkLocation 选项。 但,也可在单独的命令行上指定这些选项。

若要设置网络隔离,必须同时指定 /IpBlock/DnsSuffix 选项。 但,也可在单独的命令行上指定这些选项。

网络隔离使你能够使用虚拟机的多个副本,而不发生虚拟机名或 IP 地址冲突。 必须为隔离网络指定一个 DNS 后缀和一个 IP 范围。 由于这些 IP 地址仅用于虚拟机之间的内部路由,并且不会在环境边界之外公开,因此可以指定未在公共网络中使用的任何 IP 范围。 大多数情况下,可使用默认范围 192.168.1.0/24。 如果在连接网络隔离环境时遇到问题,可能需要选择一个不同的范围。

示例

在此示例中,通过在单个命令行上使用 /ScvmmServerName/NetworkLocation 选项来设置实验室管理工具版。

tfsconfig lab /settings /scvmmservername:vmmserver /networklocation:lab1.contoso.com

在此示例中,通过在单独的命令行上使用 /IpBlock/DNSSuffix 选项来配置网络隔离。

tfsconfig lab /settings /ipblock: 192.168.23.0/24
tfsconfig lab /settings /dnssuffix:virtual1.lab1.contoso.com

OfflineDetach

使用 offlineDetach 命令将脱机集合数据库转换为分离的脱机集合数据库。

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

先决条件

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

备注

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

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

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

示例

下面的示例演示如何使用名为 的配置数据库分离名为 的集合数据库,同时在名为 的 SQL 实例上运行的服务器上 TFS_PrimaryCollection TFS_Configuration ContosoTemp Backups

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 命令,你必须是指定实例的 sysadmin 角色SQL Server成员。

备注

此命令将修改指定集合数据库的架构,并且永远不应对部署中Azure DevOps Server数据库运行。 如果数据库正由部署Azure DevOps Server,请改为使用 TfsConfig 集合 /detach。

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

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

示例

以下示例演示如何使用名为 TFS_Configuration 的配置数据库分离名为 TFS_PrimaryCollection 的集合数据库,同时在名为"Backups"的名为"ContosoTemp"的服务器上运行的 SQL 实例上。

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

代理

可以使用 proxy 命令 更新或更改代理服务器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 中用作代理的服务帐户的帐户。 此选项仅用于将 Azure DevOps Services /change 选项结合使用。

用于登录的默认服务帐户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 可选。 指定配置代理时要使用的其他设置和值。!
例如,和 的值可用于配置 Git 存储库,以用于 Git 虚拟文件系统 GvfsProjectName (GvfsRepositoryName GVFS) (TFS 2018 Update 1)

先决条件

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

备注

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

示例

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

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 上的项目集合使用的服务Azure DevOps Services。 集合名为 ,用于Azure DevOps Services名称为 ,代理使用的服务帐户 PhoneSaver HelenaPetersen.fabrikam.com 将更改为 My Proxy Service Account 。 由于帐户名包含空格,因此将使用引号将名称放入其中。

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

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

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 中用作代理的服务帐户的帐户。

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

用于登录的默认服务帐户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 存储库,以便与在 TFS 2018 Update 1 中添加的 GIT 虚拟文件系统 (GVFS) ()

先决条件

若要使用 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"

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

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 数据库不存在,则是必需的。 指定用作 TFSReports SQL Server Reporting Services (数据源帐户的帐户) 。 有关详细信息,请参阅 中的服务帐户和Azure DevOps Server。

先决条件

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

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

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

有关详细信息,请参阅 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 命令重新生成 TFS SQL Server Reporting Services SQL Server Analysis Services TFS Visual Studio Team Foundation Server () 数据库。

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

选项

说明

/analysisServices

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

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

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

/all

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

指定将重新生成所有Azure DevOps Server和分析数据库。

/reportingDataSourcePassword: 密码

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

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

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

先决条件

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

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

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

有关详细信息,请参阅 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 Administrators 组的成员,才能 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 实例中的服务器上的配置数据库 ContosoMain TeamDatabases

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

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

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

Argument

说明

/SQLInstance: 服务器

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

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

/databaseName: Database

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

/usesqlalwayson

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

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

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

先决条件

若要使用 RegisterDB 命令,您必须是应用层服务器上 "Team Foundation Administrators" 组的成员,才能 Azure DevOps 的应用层服务器上的和 sysadmin 组的成员,Azure DevOps 的数据层服务器上 SQL Server。 有关详细信息,请参阅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

RemapDBs

remapDBs 命令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 可选。 指定要与 Analysis Services 一起使用的数据库的名称Azure DevOps Server如果在使用 /AnalysisInstance 选项指定的服务器上具有多个此类数据库。
预览 可选。 显示更新配置时必须执行的操作。
continue 可选。 指定即使尝试查找一个或多个数据库期间出错 ,RemapDB 命令也应继续。 如果使用 /continue 选项,则任何在指定的服务器或服务器上找不到其数据库的集合都将重新配置为使用托管配置数据库的服务器和实例。

先决条件

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

备注

使用 remapDBs 命令重新配置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 重定向到任何数据库。 如果这些数据库托管在配置数据库的单独服务器或实例SQL Server Analysis Services或 SQL Server Reporting Services,则还必须将 TFS 重定向到运行 TFS 的服务器或服务器。

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

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

/preview

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

/continue

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

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

/usesqlalwayson

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

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

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

先决条件

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

备注

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

示例

以下示例演示如何将客户端Azure DevOps Server配置数据库 TFS _ 配置。 此数据库托管在命名实例 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

设置

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

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

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

先决条件

你必须是应用程序层Azure DevOps管理员安全组和管理员组的成员。 有关详细信息,请参阅为用户设置管理员Azure DevOps Server。

备注

settings 命令更改部署中的服务器到服务器通信的连接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) 统一资源定位符和Azure DevOps Server。 默认情况下,通知接口 URL 和服务器 URL 在 Azure DevOps Server匹配,但你可以配置单独的 URL。 例如,你可能想要为生成的自动电子邮件使用不同的 URL Azure DevOps Server URL。 必须从应用层运行此工具以更新所有服务器,以使它们使用新的 URL。

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

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

选项

说明

/ServerURL: URL

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

/NotificationURL: URL

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

先决条件

你必须是应用层服务器上的“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,...]>
选项 描述
卸载 指定要从运行命令的计算机中卸载的一项或多项功能。 选项包括: All、ApplicationTier、Search 和 VersionControlProxy。

选项

说明

/uninstall

Specifiesoneormorefeaturestobeuninstalledfromthemachinewhereyourunthecommand. Optionsinclude: All、ApplicationTier、SharePointExtensions、Search、TeamBuild、andVersionControlProxy。

选项

说明

/uninstall

Specifiesoneormorefeaturestobeuninstalledfromthemachinewhereyourunthecommand. Optionsinclude: All、ApplicationTier、SharePointExtensions、TeamBuild、VersionControlProxy。

先决条件

若要使用 安装程序 命令,你必须是 "Azure DevOps Administrators" 安全组的成员。

示例

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

TfsConfig setup /uninstall:ALL

下面的示例从当前计算机上卸载应用层并生成功能。

TfsConfig setup /uninstall:ApplicationTier,TeamBuild

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 参数指定的集合中定义此项目。

如果项目名称中存在空格,请用引号括住名称,例如"我的 " " Project" 。

先决条件

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

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

备注

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

你必须先将测试计划工作项定义和测试计划类别导入该项目,才能使用 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,系统会自动尝试升级测试管理组件,包括测试计划和套件。

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

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

选项

说明

/upgradeTestPlans

必需,除非 使用 /upgradeStatus。

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

/upgradeStatus

必需,除非 使用 /upgradeTestPlans。

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

/CollectionName:CollectionName

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

如果项目集合的名称有空格,请用引号括住名称,例如 " Fabrikam Fiber Collection " 。

/TeamProjectName:TeamProjectName

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

如果项目名称中存在空格,请用引号括住名称,例如"我的 " " Project" 。

先决条件

你必须是“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"

Unattend.xml

命令可用性:Azure DevOps Server 2019

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

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

使用 /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。
type 指定要使用的配置类型。 使用 /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。

备注

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

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

示例

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

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

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

以下示例演示如何指定 Git 存储库,以在配置过程中与 GVFS 一起使用。

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

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

重要

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

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

第二个命令返回以下信息,包括配置了 Azure DevOps 的服务器的名称,以及与控制器 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

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

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

例如,如果使用 Team Foundation Build,可以使用 Unattend 命令安装多个使用同一配置文件的生成服务器。

使用 Unattend /create 选项创建无人参与文件。 此文件定义所有配置参数,用于Azure DevOps Server安装。 接下来,使用 Unattend /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:配置SharePoint扩展Azure DevOps Server。

使用 /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”组的成员。

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

备注

必须先创建要用作部署一Azure DevOps Server的服务帐户,然后才能使用 Unattend 命令 配置服务帐户。 你还必须为选中的安装类型安装任何必备软件。 这包括Azure DevOps Server本身。 必须安装Azure DevOps Server,但无需对其进行配置,因为 无人 参与命令将执行此配置。

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

示例

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

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

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

以下示例演示如何指定 Git 存储库,以在配置过程中与 GVFS 一起使用。

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 命令旨在收集日志,并删除 的 ProgramData\Microsoft\Azure DevOps\Server Configuration zip。

TfsConfig zipLogs

TfsConfig zipLogs

已弃用的命令

许可证

你可以使用 "许可证" 命令显示、修改或扩展 Azure DevOps Server 部署的许可密钥。

TFSConfig License [/ProductKey:Key] [/extend [NewTrialID]]

选项

说明

/ProductKey: 按键

指定将用项的值更新部署的许可证密钥。

/extend

指定将 Azure DevOps Server 的试用许可期限延长30天。 此选项只能在没有获取新试用 ID 的情况下使用一次。 如果需要第二个扩展,则必须从 Microsoft 获取第二个试用许可证。

先决条件

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

备注

若要以交互方式查看、修改或更改部署的许可,可以使用 Azure DevOps 的管理控制台。 有关详细信息,请参阅打开 Azure DevOps 管理控制台查找或更改 Azure DevOps Server 的产品密钥

示例

下面的示例演示如何查看 Azure DevOps Server 部署的许可信息。 在此示例中,部署使用试用许可证。

TFSConfig License

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

Team Foundation Server Standard license
The following features are installed:
Team Foundation Server
Build Services
Build: 21106.00
Product ID: 01234-567-8910
Trial license with 74 days remaining, expiring on 6/30/2010
Trial ID: ABCD-EFGH-IJKL

TCM

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

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

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

选项

说明

/upgradeTestPlans

必需,除非使用 /upgradeStatus

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

/upgradeStatus

必需,除非使用 /upgradeTestPlans

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

/CollectionName: CollectionName

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

如果项目集合的名称中有空格,则用引号将该名称引起来,例如 " Fabrikam 纤程 collection " 。

/TeamProjectName: TeamProjectName

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

如果项目名称中有空格,则用引号将该名称引起来,例如 " " 我的 Project" " 。

先决条件

您必须是 "Azure DevOps Administrators" 安全组的成员,并且必须是应用层服务器上的管理员。

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

备注

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

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

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

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

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

仅在自动迁移现有测试数据失败的事件中使用 TCM 命令。

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

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

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

示例

下面的示例演示如何在 DefaultCollection) (上检查在默认项目集合上承载的 Fabrikam 纤程项目的测试计划升级状态:

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

导入

TFS 2013 中弃用了导入命令。 可从以下位置获取更早版本:

如果你需要帮助来升级早期版本的 Azure DevOps Server 中的数据和项目,请参阅升级 Azure DevOps Server或联系Microsoft 支持部门

PrepareSQL

PrepareSQL 命令在 TFS 2012 中为弃用。 可从以下位置获取更早版本:

修复

在 TFS 2012 中弃用修复命令。 可从以下位置获取更早版本:

如果在数据库修补失败后需要修复存储过程,请联系 Microsoft 支持部门

诊断

在 TFS 2013 中不推荐使用诊断命令。 可从以下位置获取更早版本:

如果你需要帮助来诊断应用层和数据层服务器上的软件更新与 Azure DevOps Server 的可能不匹配问题,请联系开发人员 Community 支持

更新

TFS 2013 中已弃用 updates 命令。此处提供了较早的版本:

如果需要有关安装 Azure DevOps Server 数据库中缺少的任何软件更新的帮助,请联系Microsoft 支持部门

PrepareClone

TFS 2017 中弃用了 PrepareClone 命令。

PrepareClone 命令从 Azure DevOps Server 部署中删除有关计划备份、SharePoint 和报告资源的信息。

此命令用于两种情况:

  • 将部署移到新硬件,但要继续使用旧部署时
  • 克隆 Azure DevOps Server 部署时

在这两种情况下,运行此命令很重要。

否则,原始资源将由原始服务器和新服务器使用。

如果原始服务器和新服务器都处于活跃状态并指向相同的 SharePoint 或报告资源,不论此情况持续多长时间,都可能导致数据库损坏。

重要

无论是移动还是克隆 Azure DevOps Server,都应在配置之前运行此命令。 如果在配置之后运行它,则在您的数据库中的内容与 web.config 文件中的内容之间可能存在不一致的情况。 这些不一致可能会使你的服务器脱机。 如果已配置移动或克隆的 Azure DevOps Server 部署,并发现需要运行命令,请执行以下步骤。 首先,使你的服务器静止。 接着,依次运行 PrepareClone 命令、ChangeServerID 命令和 RemapDBs 命令。 最后,使服务器退出静止。

TFSConfig PrepareClone /SQLInstance:ServerName /DatabaseName:TFSConfigurationDatabaseName
        [/notificationURL: TFSURL] [/usesqlalwayson]

选项

作用

/DatabaseName

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

/SQLInstance: ServerName

指定要映射为托管一个或多个数据库的服务器的服务器的名称,Azure DevOps Server。 如果不是默认实例的某个实例承载了一个数据库,你还必须指定该实例的名称。

使用以下格式:ServerName InstanceName。

/NotificationURL: TFSURL

可选。 指定应用程序层服务器的通知 URL。

/usesqlalwayson

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

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

先决条件

若要使用 PrepareClone 命令,你必须是 Azure DevOps Administrators 安全组的成员以及任何 Azure DevOps Server 数据库的 sysadmin 安全组SQL Server成员。

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

备注

将原始安装移动到新硬件并想要继续使用原始部署 Azure DevOps Server Azure DevOps Server 和硬件时,或者想要克隆 Azure DevOps Server 部署以进行测试时,请使用 PrepareClone 命令重新配置 Azure DevOps Server。 你可以将 TFSConfig PrepareClone 与 TFSConfig RemapDBs 和 TFSConfig ChangeServerID 结合使用以支持克隆配置。

示例

以下示例演示如何在名为 NewFabrikamTFS 的Azure DevOps Server上使用 命令删除旧的备份、报告和SharePoint资源信息。 如果未删除此信息,则数据库的原始部署Azure DevOps Server使用相同的资源,并且数据库会损坏。 在示例中,支持SQL Server移动的 Azure DevOps Server 的名称也命名为 NewFabrikamTFS,实例是默认实例,因此不需要特定的实例信息,只需服务器名称。

TFSConfig PrepareClone /SQLInstance:NewFabrikamTFS /DatabaseName:TFS_Configuration

许可证

可以使用"许可证 " 命令显示、修改或扩展部署许可证Azure DevOps Server。

TFSConfig License [/ProductKey:Key] [/extend [NewTrialID]]

选项

说明

/ProductKey: 关键

指定部署的许可证密钥将更新为 Key 的值。

/extend

指定将 Azure DevOps Server许可期限延长 30 天。 此选项只能使用一次,无需获取新的试用 ID。 如果需要第二个扩展,则必须从 Microsoft 获取第二个试用版许可证。

先决条件

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

备注

若要以交互方式查看、修改或更改部署的许可,可以使用管理控制台Azure DevOps。

有关详细信息,请参阅打开 Azure DevOps管理控制台查找或更改Azure DevOps Server。

示例

以下示例演示如何查看部署 Azure DevOps Server。 此示例中,部署使用的是试用版许可证。

TFSConfig License

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

Team Foundation Server Standard license
The following features are installed:
Team Foundation Server
Build Services
Build: 21106.00
Product ID: 01234-567-8910
Trial license with 74 days remaining, expiring on 6/30/2010
Trial ID: ABCD-EFGH-IJKL
TFSConfig TCM /upgradeTestPlans|upgradeStatus /CollectionName:CollectionName /TeamProject:TeamProjectName

选项

说明

/upgradeTestPlans

必需,除非 使用 /upgradeStatus。

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

/upgradeStatus

必需,除非 使用 /upgradeTestPlans。

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

/CollectionName:CollectionName

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

如果项目集合的名称有空格,请用引号括住名称,例如 " Fabrikam Fiber Collection " 。

/TeamProjectName:TeamProjectName

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

如果项目名称中存在空格,请用引号括住名称,例如"我的 " " Project" 。

先决条件

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

请参阅为设置管理员权限Team Foundation Server。

备注

必须将应用程序层服务器升级到最新版本的 TFS,以使用此命令。

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

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

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

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

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

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

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

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

示例

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

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

导入

导入命令在 TFS 2013 中已弃用。 此处提供了早期版本:

如果需要有关从早期版本的 Azure DevOps Server 升级数据和项目的帮助,请参阅升级 Azure DevOps Server或联系 Microsoft 支持。

PrepareSQL

在 TFS 2012 中已弃用 prepareSQL 命令。 此处提供了早期版本:

修复

修复命令在 TFS 2012 中已弃用。 此处提供了早期版本:

如果需要在数据库修补失败后修复存储过程,请联系Microsoft 支持。

诊断

TFS 2013 中已弃用诊断命令。 此处提供了早期版本:

如果需要有关诊断应用程序层与数据层服务器上软件更新之间潜在不匹配的帮助,Azure DevOps Server开发人员Community支持

更新

更新命令在 TFS 2013 中已弃用。 此处提供了早期版本:

如果需要有关安装数据库中缺少的任何软件更新的帮助,Azure DevOps Server联系Microsoft 支持。

PrepareClone

在 TFS 2017 中已弃用 PrepareClone 命令。

命令可用性: TFS 2015 和 TFS 2013

PrepareClone 命令从部署中删除有关SharePoint备份、备份和报告Azure DevOps Server的信息。

此命令在两种情况下使用:

  • 将部署移动到新硬件,但想要保留使用旧部署时
  • 克隆部署时Azure DevOps Server部署

在任一情况下,运行此命令都至关重要。

如果没有,原始服务器和新服务器都将使用原始资源。

如果原始服务器和新服务器都处于活跃状态并指向相同的 SharePoint 或报告资源,不论此情况持续多长时间,都可能导致数据库损坏。

重要提示:
无论移动还是克隆,此命令都应在配置之前Azure DevOps Server。 如果在配置后运行它,则数据库中的内容与文件内容之间最终web.config不一致。 这些不一致可能导致服务器脱机。 如果已配置已移动或克隆的 Azure DevOps Server,并且意识到需要运行 命令,请执行以下步骤。 首先,使你的服务器静止。 接着,依次运行 PrepareClone 命令、ChangeServerID 命令和 RemapDBs 命令。 最后,使服务器退出静止。

TFSConfig PrepareClone /SQLInstance:ServerName /DatabaseName:TFSConfigurationDatabaseName
[/notificationURL: TFSURL] [/usesqlalwayson]

选项

作用

/DatabaseName

指定托管要映射到数据库的服务器的名称Azure DevOps Server配置数据库本身的名称。

/SQLInstance: ServerName

指定要映射为托管一个或多个数据库的服务器的服务器的名称,Azure DevOps Server。 如果不是默认实例的某个实例承载了一个数据库,你还必须指定该实例的名称。

使用以下格式:ServerName InstanceName。

/NotificationURL: TFSURL

可选。 指定应用程序层服务器的通知 URL。

/usesqlalwayson

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

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

先决条件

若要使用 PrepareClone 命令,你必须是 Team Foundation Administrators 安全组的成员以及你使用的任何 SQL Server 数据库的 sysadmin Azure DevOps Server成员。

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

备注

将原始安装移动到新硬件并想要继续使用原始部署 Azure DevOps Server Azure DevOps Server 和硬件时,或者想要克隆 Azure DevOps Server 部署以进行测试时,请使用 PrepareClone 命令重新配置 Azure DevOps Server。 你可以将 TFSConfig PrepareClone 与 TFSConfig RemapDBs 和 TFSConfig ChangeServerID 结合使用以支持克隆配置。

示例

以下示例演示如何在名为 NewFabrikamTFS 的Azure DevOps Server上使用 命令删除旧的备份、报告和SharePoint资源信息。 如果未删除此信息,则数据库的原始部署Azure DevOps Server使用相同的资源,并且数据库会损坏。 在示例中,支持SQL Server移动的 Azure DevOps Server 的名称也命名为 NewFabrikamTFS,实例是默认实例,因此不需要特定的实例信息,只需服务器名称。

TFSConfig PrepareClone /SQLInstance:NewFabrikamTFS /DatabaseName:TFS_Configuration