使用 TFSConfig 管理 Azure DevOps 內部部署

Azure DevOps Server 2022 |Azure DevOps Server 2020 |Azure DevOps Server 2019

您可以使用 TFSConfig 命令行工具來執行 Azure DevOps 內部部署的各種系統管理動作。

TFSConfig 可以從任何已安裝 Azure DevOps Server 的電腦執行。

命令行工具位置

Azure DevOps 命令行工具會安裝在 Azure DevOps 應用層伺服器的 /Tools 目錄中。

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

必要條件

若要讓許多命令正常運作, TFSConfig 必須能夠連線到屬於 TFS 部署一部分的各種伺服器和服務,而執行 TFSConfig 的用戶必須具有這些相同伺服器和服務的系統管理許可權。 特定命令的需求如下所述。

即使執行中的使用者具有系統管理認證,許多 TFSConfig 命令都必須從提升許可權的命令提示字元執行。 若要開啟提升許可權的命令提示字元,請按兩下 [啟動],以滑鼠右鍵按兩下 [命令提示字元],然後按兩下 [以系統管理員身分執行]。 如需詳細資訊,請參閱: 用戶帳戶控制

您也可以使用管理主控台以互動方式執行系統管理動作,以進行 Azure DevOps Server。 請參閱 系統管理工作快速參考

列出命令並取得說明

若要顯示 TFSConfig 命令的完整清單,請使用 說明 命令:

TFSConfig help

若要取得個別命令的說明,請使用 help 命令,並指定您想要協助的命令名稱。 例如,若要取得 accounts 命令的說明:

TFSConfig help accounts

帳戶

使用 accounts 命令來管理這些 Azure DevOps Server 服務帳戶。

  • Azure DevOps Server 服務帳戶
  • SQL Server Reporting Services 的數據源帳戶
  • Azure DevOps Proxy 伺服器服務帳戶

您也可以使用此命令來變更 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,以更新任何遺漏的集合。 將帳戶加入至為了使用該帳戶做為服務帳戶所需的群組。
Set 只將服務設定為使用已新增至資源的帳戶。 適用於 NLB 案例。
刪除 從所有資源中移除帳戶。 刪除帳戶時應使用預防措施,因為它可能會導致其他伺服器遭到拒絕服務。
ResetOwner 如果資料庫還原為移動、複製或災害復原的一部分,資料庫擁有者可以切換至還原伺服器的系統管理員。 此選項會逐一查看所有資料庫,並將 dbo 登入設定為目前的擁有者。
AccountType Description
AdminConsole 管理主控台使用者是已授與各種資源使用主控台之最低許可權的使用者。
ApplicationTier 變更核心 Web 服務 appPool 上的服務帳戶。 (TFSService)
Proxy 變更 Proxy Web 服務之 appPool 上的服務帳戶。 (TFSProxy)
ReportingDataSource 變更報表用來存取報告數據的帳戶。 (TFSReports)

預設值為 ApplicationTier

sqlInstance 和 databaseName 僅適用於在設定應用層之前將帳戶新增至資料庫時使用。 這主要適用於執行 [僅限 AT 設定精靈] 之前需要另一個帳戶的災害復原案例。

新增或變更帳戶時,會使用continue選項。 針對這些作業,帳戶會在每個集合資料庫中變更。 如果提供continue,則會在無法連線到集合時繼續。 當可連線時,它可以再次執行。

注意

帳戶必須是 domainName\userName 格式。 針對系統帳戶,您必須使用完整帳戶名稱 (的引號,例如“NT Authority\Network Service”) 。 系統帳戶不需要密碼。

參數 Description
帳戶 指定您想要從參考帳戶類型新增、變更或刪除的帳戶名稱,例如 /AccountType:ApplicationTier
密碼 指定服務帳戶的密碼。 如果您是使用系統帳戶,或是沒有密碼的帳戶 (例如網路服務),則此參數為選擇性。
sqlInstance 只搭配 /ResetOwner 使用。

如果您想要使用預設實例以外的實例,請指定執行 SQL Server 的伺服器名稱,以及實例的名稱。 您必須以下列格式指定名稱和執行個體:

ServerName\InstanceName。
databaseName 只搭配 /ResetOwner 使用。

指定您要變更其擁有權的資料庫名稱。 使用此命令會重設您指定給用來執行命令之帳戶的資料庫擁有權。
continue 更新您在執行命令時,無法使用的任何群組。 這個選項通常會用於 NLB 案例。

必要條件

若要使用 accounts 命令,您必須是:

  • Azure DevOps Administrators 安全組
  • 您 Azure DevOps Server 實例使用之所有 SQL Server 實例的系統管理員角色。

如果您使用 /proxy 選項,您必須是 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"

將具名實例中 TeamDatabases SQL Server 資料庫ContosoMain擁有權TFS_Warehouse變更為您執行命令的用戶帳戶。

注意

當您使用此命令時,您無法指定要設定為資料庫擁有者的帳戶。 該擁有者將會設為您用來執行命令的帳戶。

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

AddProjectReports

注意

addProjectReports 命令適用於 TFS 2017.1 和更新版本。

您可以使用 addProjectReports 命令來新增或覆寫現有 Team 專案的報表。

TfsConfig addProjectReports /collection:<teamProjectCollectionUrl> /teamProject:<projectName> /template:<templateName>
[/force]
選項 描述
collection 必要。 Team 專案集合的 URL。
teamproject 必要。 指定 Team 項目名稱。
template 必要。 指定進程範本的名稱。 可用的選項包括 Agile、CMMI 和 Scrum。
force 選擇性。 指定如果報表已經存在,則應該覆寫報告。

必要條件

若要使用 addProjectReports 命令,您必須具有執行 TFSConfig 的許可權,以及 將報表上傳至 Reporting Service

備註

當您的項目沒有報表,或您想要更新針對進程定義的報表時,您可以使用 addProjectReports 命令。

您可能需要在下列情況下使用此指令:

  • 專案是在 Azure DevOps 入口網站中建立,而不是從 Visual Studio 建立
  • 專案是從 Visual Studio 建立的,不過報表並未在 Azure DevOps Server 中設定。

如果您想要以預設報表覆寫專案中的報表,因為您升級 Azure DevOps Server 和專案中的舊報表已不再相容,請使用 /force 選項。 如果您已自定義報表,請先進行備份,再執行此動作。

若要深入瞭解如何將報表新增至內部部署 Azure DevOps Server,請參閱將報表新增至專案

範例

下列範例示範如何將 Agile 報表新增至 MyProject 專案集合中的 http://myTfsServer:8080/tfs/DefaultCollection 專案。

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

驗證

驗證命令會變更 Azure DevOps Server 應用層或 Proxy 網站所使用的網路驗證通訊協定。

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

選項

描述

/viewAll

顯示目前 Azure DevOps Server 的驗證設定。

/provider: { NTLM |Negotiate }

指定您想要為網站設定的驗證提供者。

  • NTLM:使用NTML驗證通訊協定
  • 涉:使用 Negotiate (Kerberos) 驗證通訊協定

/siteType

指定您要變更其網路驗證通訊協議的網站 (應用層或 Proxy) 。 應用層是預設值。

必要條件

若要使用 驗證 命令,您必須是 Azure DevOps Administrators 安全組的成員,以及應用層伺服器或 Proxy 伺服器上的本機系統管理員,視 siteType 選項的值而定。

備註

驗證命令是由想要變更 Azure DevOps Server 所依賴之一或多個網站的網路驗證通訊協議的系統管理員所使用。 系統管理員會從應用程式層執行此命令,來更新需要變更網路驗證通訊協定的這些網站。 此命令會變更 IIS 中繼基底中的 NTAuthenticationProviders 屬性。

使用 驗證 命令來變更驗證通訊協定之前,您可以使用 /viewAll 選項執行命令,以查看現有設定是什麼。

範例

下列範例會顯示指派給網路驗證通訊協定的目前值。

TFSConfig Authentication /viewAll

憑證

使用 certificates 命令,在 Azure DevOps Server 部署利用 HTTPS、安全套接字層 (SSL) 和憑證的部署中,變更客戶端驗證憑證的設定方式。

TfsConfig certificates [/machine] [/disable] [/autoSelect] [/noprompt] [/thumbprints:thumbprint1[,thumbprint2,...]]
選項 Description
機器 指定憑證清單會來自本機計算機內容,而不是目前的用戶內容。
disable 指定將會停用客戶端驗證憑證設定。
autoSelect 指定憑證會自動從憑證清單中選取憑證。 [管理客戶端憑證] 視窗將不會開啟。
noprompt 指定執行 Certificates 命令時,[管理用戶端憑證] 視窗將不會開啟。
指紋 指定將使用符合指定指紋的憑證。 您可以使用逗號分隔個別指紋,以指定多個憑證。

必要條件

若要使用 憑證 命令,您必須是執行命令之電腦上的 Azure DevOps Administrators 安全組和本機 Administrators 群組的成員。 如需詳細資訊,請參閱 Azure DevOps Server 的許可權參考

備註

根據預設, certificates 命令會自動從目前使用者的憑證清單中選取客戶端憑證。 不過,您可以使用 命令的選項來指定來自目前用戶內容或本機計算機內容的特定憑證或憑證。

使用 certificates 命令之前,您必須先在部署 Azure DevOps Server 中設定伺服器,以利用憑證。 如需詳細資訊,請參閱為 Azure DevOps Server 設定具有安全套接字層的 HTTPS (SSL)

您可以使用 certificates 命令來設定已設定為使用 HTTPS/SSL 和憑證之部署 Azure DevOps Server 所使用的用戶端憑證。 如果您使用 [憑證] 命令沒有選項,則會自動從您執行命令的目前使用者內容中選取客戶端憑證。

範例

下列範例示範如何指定具有指紋 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]
選項 Description
sqlInstance 必要。 如果您想要使用預設實例以外的實例,請指定執行 SQL Server 的伺服器名稱,以及實例的名稱。 如果您指定實例,則必須使用格式: ServerName\InstanceName
databaseName 必要。 指定 Azure DevOps Server 組態資料庫的名稱。 根據預設,此資料庫的名稱會是 TFS_ConfigurationDB。
projectCollectionsOnly 指定只會變更集合的 GUID。
configDBOnly 指定只會變更組態資料庫的 GUID。
collectionName 指定為特定集合建立新的實例標識碼,但不適用於 Azure DevOps 實例和其他集合。

必要條件

若要使用 changeServerID 命令,您必須是 Azure DevOps Administrators 安全組的成員,以及 Azure DevOps Server 使用之所有 SQL Server 實例的系統管理員安全性角色成員。 如需詳細資訊,請參閱 Azure DevOps 的許可權參考

備註

您可以使用 changeServerID 命令,針對測試或複製目的建立部署 Azure DevOps Server 的離散重複專案。 使用 changeServerID 命令之後,您必須指示用戶端建立已變更伺服器的連線,才能使用它。

範例

下列範例示範如何變更 Azure DevOps Server Contoso1 部署中所有資料庫的 GUID,其中組態資料庫裝載於 SQL Server 中具ContosoMain名實例TeamDatabases的伺服器上。

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>]
選項 Description
indexingStatus 顯示程式碼索引服務的狀態和組態。
setIndexing on:開始為所有變更集編製索引。
off:停止為變更集編製索引。
keepupOnly:停止為先前建立的變更集編製索引,並且開始僅為新變更集編製索引。
ignoreList 指定您不要編製索引之程式碼檔及其路徑的清單。

add:將您不要編製索引的檔案,新增到忽略的檔案清單中。
remove:從忽略的檔案清單中,移除您要編製索引的檔案。
removeAll:清除忽略的檔案清單,並開始為所有的檔案編製索引。
view:查看未編製索引的所有檔案。
ServerPath:指定程式代碼檔案的路徑。

您可以在伺服器路徑的開頭、結尾或兩端使用萬用字元 (*)。
listLargeFiles 顯示超過指定大小 (KB) 的指定檔案數。 然後,您就可以使用 /ignoreList 選項來排除這些檔案,不為其編製索引。

因此,您將需要 Team Foundation Server 2013 與 Update 3
reindexAll 清除先前索引資料,並重新開始編製索引。
destroyCodeIndex 刪除程式碼索引,並移除所有索引資料。 如果您使用 /noPrompt 選項,則不需要確認。
temporaryDataSizeLimit 控制處理變更集時,CodeLens 會建立多少暫存資料。 預設限制為 6 GB (Update 5 為 2 GB)。

view:顯示目前的大小限制。
SizeInGBs:變更大小限制。
disable:移除大小限制。

在 CodeLens 處理新的變更集之前,會先檢查此限制。 如果暫存資料超過此限制,CodeLens 將會暫停處理舊的變更集,而不是新的變更集。 清理資料並降到低於此限制之後,CodeLens 就會重新開始處理。 每天會自動執行一次清理。 這表示,在開始執行清理之前,暫存資料可能會超過此限制。

因此,您將需要 具有 Update 4 的 Team Foundation Server 2013
indexHistoryPeriod 控制將歷程記錄編製索引的時間長度。 這會影響 CodeLens 向您顯示的記錄數量。 預設限制為 12 個月。 這表示 CodeLens 只會顯示最近 12 個月內的歷程記錄。

view:顯示目前的月數。
all:編製索引所有歷程記錄。
NumberOfMonths:變更用來編製變更歷程記錄的月份數。

因此,您將需要 具有 Update 4 的 Team Foundation Server 2013
collectionName 指定要在哪個名稱的專案集合上執行 CodeIndex 命令。 如果未使用 /CollectionId,則此為必要項。
collectionId 指定要在哪個識別碼的專案集合上執行 CodeIndex 命令。 如果您沒有使用 /CollectionName,則需要

必要條件

若要使用 codeIndex 命令,您必須是 Azure DevOps Administrators 安全組的成員。 請參閱許可權參考以取得 Azure DevOps Server。

範例

若要查看程式碼索引狀態和組態:

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

若要開始為索引所有變更集編製索引:

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

若要停止為先前建立的變更集編製索引,並且開始只為新變更集編製索引:

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

若要找出最多 50 個大於 10 KB 的檔案:

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

若要從索引排除特定檔案,並將它加入至忽略的檔案清單:

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

查看未編製索引的所有檔案:

TfsConfig codeIndex /ignoreList:view

若要清除先前編製索引的資料,並重新開始編製索引:

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

若要儲存所有變更集記錄:

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

若要移除 CodeLens 暫存資料的大小限制,並繼續編製索引,而不管暫存資料大小:

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

若要刪除經過確認的程式碼索引:

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

集合

您可以使用集合命令,從部署 Azure DevOps Server 附加、卸離或刪除專案集合。 您也可以使用 集合 命令來複製現有集合的資料庫、重新命名它,並將其附加至部署。 這個流程有時稱為複製集合。

TfsConfig collection {/attach | /create | /detach | /delete} [/collectionName:<collectionName>]
    [/description:<collectionDescription>]
    [/collectionDB:<serverName>;<databaseName>]
    [/processModel:Inheritance|Xml]
    [/reportingFolder:<reportingFolderPath>]
    [/clone] [/verify] [/continue]
選項 Description
附加 如果未使用 /detach/delete ,則為必要專案。 如果您指定此選項,也必須使用 /collectionDB 選項。 您也可以選擇 使用 /collectionName/clone 搭配此選項。 如果您使用 /attach 選項,則會將指定的集合資料庫新增至部署 Azure DevOps Server。
建立 建立集合。
detach 如果未使用 /attach/delete ,則為必要專案。 如果您指定此選項,您也必須使用 /collectionName 選項。 如果您使用 /detach 選項,將會停止指定集合的資料庫,而且集合將會從部署 Azure DevOps Server 中斷連結。
刪除 如果未使用 /detach/attach, 則為必要專案。 如果您指定此選項,您也必須使用 /collectionName 選項。 如果您使用 /delete 選項,則會停止指定集合的資料庫,而且集合將會從 Azure DevOps Server 永久中斷連結。 您無法將集合資料庫重新附加至這個或任何其他部署。
CollectionName 指定專案集合的名稱。 如果集合的名稱包含空格,您必須用引號括住名稱 (例如,"My Collection")。 如果使用 /detach/delete ,則為必要專案。 如果您使用此選項搭配 /detach/delete,它會指定將卸離或刪除的集合。 如果您使用此選項搭配 /attach,它會指定集合的新名稱。 如果您使用此選項搭配 /attach/clone,它會指定重複集合的名稱。
CollectionDB 如果使用 /attach ,則為必要專案。 這個選項會指定執行 SQL Server 的伺服器名稱,以及裝載在該伺服器上之集合資料庫的名稱。
ServerName 指定裝載組態資料庫的伺服器名稱,以 Azure DevOps Server,如果您想要使用預設實例以外的實例,則指定實例的名稱。 如果您指定實例,則必須使用格式: ServerName\InstanceName
DatabaseName 指定組態資料庫的名稱。 根據預設,此資料庫的名稱會是 TFS_ConfigurationDB。
clone 如果您指定此選項,原始集合資料庫將會附加為 SQL Server 中的複製品,而此資料庫將會附加至 Azure DevOps Server。 此選項主要用於分割專案集合。

提示

/delete 選項不會從 SQL Server 中刪除集合資料庫。 從 Azure DevOps Server 刪除集合資料庫之後,您可以從 SQL Server 手動刪除資料庫。

必要條件

若要使用 collections 命令,您必須是 Team Foundation Administrators 安全組的成員,以及執行 TfsConfig 之電腦上的本機 Administrators 群組。 您也必須是 Azure DevOps Server 資料庫所使用之所有 SQL Server 實例的系統管理員安全性角色成員。 如果您的部署已與 SharePoint 整合,而且您使用的是 /delete 選項,您也必須是您要刪除網站集合的 SharePoint 伺服器陣列伺服器陣組管理員群組的成員。

如需詳細資訊,請參閱 Azure DevOps Server 的許可權參考

備註

若要以互動方式管理集合或建立集合,您可以在 Azure DevOps 的管理控制台中使用 [專案集合] 節點。 請參閱 管理專案集合

範例

下列範例示範如何從部署 Azure DevOps Server 永久移除Contoso Summer Intern Projects專案集合。

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

下列範例示範如何複製Contoso Summer Interns Projects專案集合、將其命名為 Contoso Winter Interns Projects,並將重複的集合附加至部署 Azure DevOps Server。

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

ColumnStoreIndex

注意

命令可用性:需要 TFS 2015.2 和更新版本。

您可以使用 columnStoreIndex 命令,為 Azure DevOps Server 部署所使用的資料庫啟用或停用數據行存放區索引。

TfsConfig columnStoreIndex /enabled:<true|false>
	/sqlInstance:<serverName>
	/databaseName:<databaseName>
選項 描述
已啟用 指定您是否要針對指定的 SQL 實例和資料庫啟用或停用資料行存放區索引。
sqlInstance 指定裝載要啟用或停用數據行存放區索引之資料庫的伺服器名稱,以及如果使用預設值以外的實例,則為實例的名稱。 如果您指定實例,則必須使用格式: ServerName\InstanceName
databaseName 指定啟用或停用資料行存放區索引的資料庫名稱。

必要條件

若要使用 columnStoreIndex 命令,您必須是指定之 SQL Server 實例之系統管理員角色的成員。

備註

如果您要將支持的數據行存放區索引從 SQL 實例移至不支援的數據行存放區索引,您通常會使用 columnStoreIndex 命令。 在此情況下,您必須先停用所有數據行存放區索引,才能成功移動資料庫。 同樣地,如果您要將資料庫移回支援的數據行存放區索引SQL實例,您可能想要重新啟用資料行存放區索引,以節省空間並提升效能。

範例

下列範例示範如何針對在具名實例TeamDatabases上名為 之伺服器上執行的 SQL 實例上,針對名為 TFS_DefaultCollectionContosoMain 的資料庫啟用數據行存放區索引。

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

ConfigureMail

設定執行 Azure DevOps Server 的伺服器,以使用現有的 SMTP 伺服器進行電子郵件警示。

TfsConfig configureMail /Enabled:<true|false> /FromEmailAddress:<emailAddress> /SmtpHost:<SMTPHostName>
選項 Description
FromEmailAddress 指定要從中傳送電子郵件通知的位址,Azure DevOps Server 簽入、指派給您的工作專案或其他通知。 此位址也會檢查是否有效,而且視您的伺服器設定而定,可能必須代表郵件伺服器上的有效電子郵件帳戶。 如果位址不存在或無效,則會使用預設電子郵件位址。
SmtpHost 指定載入郵件伺服器的伺服器名稱。

必要條件

若要使用 configureMail 命令,您必須是 Azure DevOps 應用層伺服器上的 Team Foundation Administrators 安全組成員。 如需詳細資訊,請參閱 Azure DevOps Server 的許可權參考

備註

您也可以使用管理主控台來設定 Azure DevOps Server 使用 SMTP 伺服器。

範例

下列範例顯示用來設定從電子郵件地址到 TFS@contoso.com 的語法,以及將 SMTP 郵件伺服器設定為 ContosoMailServer

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

DBCompression

您可以使用 dbCompression 命令,為 Azure DevOps Server 部署所使用的資料庫啟用或停用資料庫頁面壓縮。

TfsConfig dbCompression /pageCompression:[enable|disable]
	/sqlInstance:<serverName>
	/databaseName:<databaseName>
	[/rebuildNow [/offline]]
選項 Description
pageCompression 指定您是否要針對指定的 SQL 實例和資料庫啟用或停用頁面壓縮。
sqlInstance 指定裝載啟用或停用頁面壓縮之資料庫的伺服器名稱,以及如果使用預設值以外的實例,則為實例的名稱。 如果您指定實體,則必須使用格式: ServerName\InstanceName
databaseName 指定啟用或停用頁面壓縮的資料庫名稱。
rebuildNow 選擇性。 指定是否應該 (重建資料庫索引,並視需要立即解壓縮或解壓縮) 。 如果未使用,則會由每周執行的背景作業重建索引。
離線 選擇性。 僅與 /rebuildNow 搭配使用。 如果未指定 /offline ,則會在在線重建索引。 如果已指定 /offline ,則會脫機重建索引。 這會封鎖其他作業,但可能比在線索引重建更快。

必要條件

若要使用 dbCompression 命令,您必須是指定之 SQL Server 實例之系統管理員角色的成員。

備註

如果您要將資料庫從支援壓縮的 SQL 實例移至不支援壓縮的 SQL 實例,您通常會使用 dbCompression 命令。 在此情況下,您必須先停用壓縮和解壓縮所有索引,才能成功移動資料庫。 同樣地,如果您要將資料庫移回支援壓縮的 SQL 實例,您可能想要重新啟用壓縮,以節省空間。

此命令只會變更 Azure DevOps Server 偏好使用資料庫頁面壓縮, 您的資料庫仍必須裝載於支援壓縮的 SQL 實例中。 如需詳細資訊,請參閱 SQL Server 版本支援的功能

範例

下列範例示範如何針對在具名實例TeamDatabases上執行之伺服器上執行之 SQL 實例上名為 TFS_DefaultCollectionContosoMain 的資料庫,立即啟用頁面壓縮,並重新建置索引。

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]
選項 Description
ageInDays 超過指定天數的測試結果將會遭到刪除或預覽。
sqlInstance 裝載要刪除或預覽測試結果之資料庫的伺服器名稱,如果使用預設值以外的實例,則為實例的名稱。 如果您指定實例,則必須使用格式: ServerName\InstanceName
databaseName 要刪除或預覽測試結果的資料庫名稱。
類型 選擇性。 要刪除的測試結果類型。 有效值為 自動化手動全部
preview 選擇性。 顯示會根據天數的年齡刪除的測試結果數目,但不要刪除這些結果。

必要條件

若要使用 deleteTestResults 命令,您必須是指定之 SQL Server 實例之系統管理員角色的成員。

備註

使用 /preview 參數查看依專案名稱和年份排序的測試結果,而不需刪除這些結果。

範例

下列範例示範如何針對在具名實例TeamDatabases上執行之伺服器上執行之 SQL 實例上名為 TFS_DefaultCollectionContosoMain 的資料庫,刪除超過 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>
選項 Description
fromPool 來源集區名稱。
toPool 目的地集區名稱。

Identities

分識別命令會列出或變更 (SID) 部署 Azure DevOps Server 中使用者和群組的安全性標識符。 在下列一個案例中,您可能需要變更或更新使用者和群組的 SID:

  • 變更部署的網域

  • 從工作組變更為網域,或從網域變更為工作組

  • 在 Active Directory 中跨網域移轉帳戶

注意

如果您要變更同一個 Active Directory 樹系中的網域,就不需要執行這項命令。 Azure DevOps Server 會自動處理相同樹系內移動的 SID 變更。

TfsConfig identities [/change /fromdomain:<domainName1> /todomain:<domainName2>
    [/account:<accountName> [/toaccount:<accountName>]] [/sqlInstance:<serverName> /databaseName:<databaseName>]
選項 Description
變更 指定您要變更識別而不是將其列出。
fromdomain 使用 /change 時需要。 指定您想要變更其識別的原始網域。 如果您是從工作群組環境變更,請指定電腦的名稱。
todomain 使用 /change 時需要。 指定您要變更其識別的網域。 如果您變更至工作群組環境,請指定電腦的名稱。
account 指定您要列出或變更其識別之帳戶的名稱。
toaccount 指定您要變更其識別之帳戶的名稱。
SQLInstance 如果您想要使用預設實例以外的實例,請指定執行 SQL Server 的伺服器名稱,以及實例的名稱。 您必須使用下列格式指定執行個體:

ServerName\InstanceName
DatabaseName 指定 Azure DevOps Server 組態資料庫的名稱。

必要條件

若要使用身分識別命令,您必須是Team Foundation Administrators安全組的成員,以及Team Foundation Server 使用之所有 SQL Server 實例的系統管理員角色成員。 如需詳細資訊,請參閱設定 Azure DevOps Server的系統管理員許可權

備註

您可以選擇性地指定資料庫在您設定部署的應用程式層伺服器之前先變更識別。 例如,當您複製部署 Azure DevOps Server 時,可能會指定要變更服務帳戶的資料庫。

當您變更身分識別時,目標帳戶或帳戶必須已存在於 Windows 中。

您必須先等待與 Windows 進行的下一次識別同步處理,以此命令變更之帳戶的屬性才會更新。 這項需求包括從群組到使用者、使用者到群組,以及從網域帳戶到本機帳戶的變更。

範例

下列範例示範如何列出儲存在 Azure DevOps Server 中的所有 Windows 使用者和群組名稱,以及每個使用者或群組的 SID 是否符合 Windows 中的 SID。 Contoso1 網域系統管理員建立了網域群組,例如 ,Contoso1\\TestersContoso1\\Developers協助簡化跨 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帳戶以 和ContosoPrime\hholt的形式Contoso1\hholt存在,帳戶 SID 將會變更為 的 ContosoPrime\hholtSID。 ContosoPrime\hholt如果帳戶不存在,將不會針對 Contoso1\hholt更新 SID。

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

下列範例示範如何將單一用戶帳戶的帳戶 Contoso1\hholt變更為另一個用戶帳戶的帳戶 ContosoPrime\jpeoples

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

下列範例示範如何在將部署網域從 Contoso1ContosoPrime變更為 時,變更用於部署 Azure DevOps Server 的服務帳戶 SIDNT AUTHORITY\NETWORK SERVICE。 若要變更系統帳戶,例如 Network Service,您必須遵循兩階段的程序。 您必須先將服務帳戶從 NT AUTHORITY\NETWORK SERVICE 變更為新網域 TempSVC中的網域帳戶,然後將帳戶變更回新網域之伺服器上的NETWORK SERVICE。 組態資料庫裝載於 SQL Server 中具名實例TeamDatabases上的伺服器上ContosoMain

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

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

作業

您可以使用 jobs 命令來建立記錄檔,以提供特定專案集合最新作業活動的詳細數據,或重試一或所有專案集合的作業。

TfsConfig jobs /retry|dumplog [/CollectionName:<collectionName>] [/CollectionId:<id>]
選項 Description
retry 如果未使用 /dumplog ,則為必要專案。 指定將針對指定的專案集合重新嘗試最新的作業。 如果您使用此選項,也必須使用 /CollectionName/CollectionID 選項。
dumplog 如果未使用 /retry ,則為必要專案。 指定集合的最新作業活動會傳送至記錄檔。 如果您使用此選項,也必須使用 /CollectionName/CollectionID 選項。
CollectionName 如果未使用 /CollectionID ,則為必要專案。 指定將重試最近作業的集合名稱, (/retry) 或記錄 (/dumplog) 。 如果您想要指定所有集合,可以使用星號 (*) 。
CollectionID 如果未使用 /CollectionName ,則為必要專案。 指定將重試最近作業的集合標識符, (/retry) 或記錄 (/dumplog) 。

必要條件

若要使用 jobs 命令,您必須是 Azure DevOps Administrators 安全組的成員。 如需詳細資訊,請參閱 Azure DevOps Server 的許可權參考

備註

若要以互動方式重試作業,您可以開啟 Azure DevOps 的管理控制台、選取集合的 [ 狀態 ] 索引標籤,然後選取 [ 重試作業]。 如需詳細資訊,請參閱 開啟 Azure DevOps 管理控制台

範例

下列範例示範如何建立記錄檔,以列出 Azure DevOps Server 中專案集合的最新作業活動Contoso Summer Intern Projects

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

OfflineDetach

您可以使用 offlineDetach 命令,將離線集合資料庫設為中斷連結的離線集合資料庫。

TfsConfig offlineDetach /configurationDB:<databaseName>
    /collectionDB:<databaseName>
選項 Description
configurationDB 指定要使用的組態資料庫名稱。
collectionDB 指定要卸離的集合資料庫名稱。

必要條件

若要使用 offlineDetach 命令,您必須是指定之 SQL Server 實例的系統管理員角色成員。

備註

此命令會修改指定之集合資料庫的架構,且不應該對Team Foundation Server 部署正在使用的資料庫執行。 如果您的資料庫正由 Team Foundation Server 部署使用,請改用 TfsConfig collection /detach

當您需要從備份還原個別集合資料庫,而不還原屬於相同 Azure DevOps Server 部署的其他集合資料庫時,此命令很有用。 先前,這需要還原一組完整且一致的資料庫, (組態和所有集合) 至預備環境、使用這些資料庫設定 Azure DevOps Server 部署,以及中斷連結一個感興趣的集合。

相反地,您現在可以還原組態資料庫的一致複本和感興趣的集合資料庫,並執行 offlineDetach 命令。 卸離的集合資料庫接著可以附加至適當版本的任何 Azure DevOps Server 部署。

範例

下列範例說明使用名為 TFS_PrimaryCollectionTFS_Configuration的組態資料庫卸離集合資料庫,並在具ContosoTemp名實例的伺服器上執行的 SQL 實例Backups上執行兩者。

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

Proxy

您可以使用 Proxy 命令來更新或變更 Azure DevOps Proxy Server 所使用的設定。 Azure DevOps Proxy Server 提供分散式小組使用版本控制的支援,方法是管理分散式小組位置中下載的版本控制檔案快取。 藉由設定 Azure DevOps Proxy Server,您可以大幅減少廣域連線所需的頻寬。 此外,您也不必管理版本檔案的下載和快取,這些檔案的管理對於使用檔案的開發人員而言是透明的。 同時,任何元數據交換和檔案上傳都會繼續出現在 Azure DevOps Server 中。 如果您使用 Azure DevOps Services 在雲端裝載您的開發專案,您可以使用 Proxy 命令,不僅管理託管集合中專案的快取,也可以管理該服務所使用的某些設定。

如需安裝 Azure DevOps Proxy 伺服器和 Proxy 初始設定的詳細資訊,

請參閱如何:安裝 Azure DevOps Proxy 伺服器並設定遠端月臺。 如需在用戶端計算機上設定 Proxy 的詳細資訊,請參閱 Azure DevOps 版本控制命令參考

TfsConfig proxy /add|delete|change [/Collection:<teamProjectCollectionURL> /account:<accountName>]
	/Server:<TeamFoundationServerURL> [/inputs:Key1=Value1; Key2=Value2;...] [/continue]
選項 Description
add 將指定的伺服器或集合加入至 Proxy.config 檔案中的 Proxy 清單。 您可以執行 /add 多次,以包含更多集合或伺服器。 使用 /add 搭配裝載於 Azure DevOps Services 上的集合時,系統會提示您輸入 Azure DevOps Services 的認證。
變更 變更儲存為 Azure DevOps Services 服務帳戶的認證。 /change 選項僅用於 Azure DevOps Services;它不應該用於 Azure DevOps Server 的本機部署。
刪除 將指定的伺服器或集合從 Proxy.config 檔案中的 Proxy 清單移除。
account 指定在 Azure DevOps Services 中做為 Proxy 服務帳戶使用的帳戶。 此選項僅適用於與 /change 選項搭配 Azure DevOps Services。

用於 Azure DevOps Services的預設服務帳戶是「帳戶服務」。
continue 即使驗證程序產生警告,仍繼續執行命令。
集合 指定以格式裝載於 Azure DevOps Services AccountName.DomainName/CollectionName 的專案集合 URL。
account 指定做為 Azure DevOps Services 服務帳戶的帳戶名稱。 如果帳戶名稱含有空格,這個名稱就必須放在引號 ("") 內。 帳戶名稱中的所有特殊字元,都必須依照命令列語法來指定。
account 以格式指定 Azure DevOps Server 部署ServerURL:Port/tfs的 URL。
PersonalAccessTokenFile 選擇性地指定包含個人存取令牌的檔案路徑。 註冊 Proxy 時,此令牌會用來向集合或帳戶進行驗證。 在 TFS 2018 Update 1) 中新增 (
輸入 選擇性。 指定設定 Proxy 時要使用的其他設定和值。!

例如,和 GvfsRepositoryName 的值GvfsProjectName可用來設定 Git 存放庫,以搭配在 TFS 2018 Update 1 中新增的 Git 虛擬文件系統 (GVFS) ()

必要條件

若要使用 Proxy 命令,您必須是 Azure DevOps Administrators 安全組的成員,以及 Proxy 伺服器上的系統管理員。 如需詳細資訊,請參閱 Azure DevOps Server 的許可權參考。

備註

您可以使用 Proxy 命令來更新 Azure DevOps Server Proxy 的現有組態。 您無法使用 Proxy 命令進行 Proxy 的初始安裝和設定。

範例

下列範例示範如何將名為 FABRIKAM Azure DevOps Server 部署新增至 Proxy 清單。

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

下列範例示範如何使用個人存取令牌來驗證,將裝載在 Azure DevOps Services 的專案集合新增至 Proxy 清單。 此令牌只會用來向 Azure DevOps Services 帳戶註冊 Proxy - 預設服務帳戶仍會用來執行 Proxy。 此參數已新增至 TFS 2018 Update 1,以支援向 Azure DevOps Services 註冊 Proxy,而不需要登入提示。

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

下列範例示範如何將專案集合新增至 Proxy 清單。 此範例會使用個人存取令牌,針對使用 /Collection 參數指定的集合進行驗證。 要使用的個人存取令牌會儲存至 位於 c:\PersonalAccessToken.txt的檔案。

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

下列範例示範如何針對裝載於 Azure DevOps Services 的專案集合,變更 Proxy 所使用的服務帳戶。 集合名為 PhoneSaver,用於 Azure DevOps Services 的帳戶名稱為 HelenaPetersen.fabrikam.com,而 Proxy 所使用的服務帳戶會變更為 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

RebuildWarehouse

您可以使用 rebuildWarehouse 命令來重建 SQL Server Reporting Services 和 SQL Server Analysis Services Azure DevOps Server 使用的資料庫。

TfsConfig rebuildWarehouse /analysisServices | /all [/ReportingDataSourcePassword:Password]
選項 Description
analysisServices 如果未使用 /all ,則為必要項。 指定只會重建 Analysis Services 資料庫。 如果 Analysis Services 沒有資料庫存在,您也必須使用 /reportingDataSourcePassword 選項。
all 如果未使用 /analysisServices, 則為必要項。 指定將會重建 Azure DevOps Server 使用的所有報告和分析資料庫。
reportingDataSourcePassword 如果 TFS_Analysis 資料庫不存在,則為必要項。 指定作為 SQL Server Reporting Services (TFSReports) 數據源帳戶的帳戶密碼。 如需詳細資訊,請參閱 Azure DevOps Server 中的服務帳戶和相依性

必要條件

若要使用 rebuildWarehouse 命令,您必須是下列群組的成員:

  • 在執行 Azure DevOps 管理控制台的伺服器或伺服器上,Azure DevOps 系統管理員安全組和 Administrators 安全組

  • 伺服器或伺服器上執行裝載資料庫 Azure DevOps Server SQL Server 實例的 sysadmin 群組

如需詳細資訊,請參閱 Azure DevOps Server 的許可權參考

備註

當您移動或分割專案集合、還原數據,或變更部署的組態時,您可以使用此命令。

若要以互動方式開始重建這些資料庫,您可以在 Azure DevOps 的管理控制台中使用 [報告] 節點。 如需詳細資訊,請參閱 開啟 Azure DevOps 管理控制台

範例

下列範例示範如何重建 Analysis Services 資料庫以進行部署 Azure DevOps Server。

TfsConfig rebuildWarehouse /analysisServices

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

RegisterDB

使用 registerDB 更新 Azure DevOps Server 中裝載組態資料庫之伺服器的名稱。 您可以在將組態資料庫還原至新硬體或變更部署的網域時,使用此命令。

TfsConfig registerDB /sqlInstance:<serverName> /databaseName:<databaseName>
選項 Description
SQLInstance 必要。 指定執行 SQL Server 的伺服器名稱,以及如果您想要使用預設實例以外的實例,則指定實例的名稱。 如果您指定實例,則必須使用格式: ServerName\InstanceName
databaseName 必要。 指定組態資料庫的名稱。 根據預設,該名稱為 Tfs_Configuration。

必要條件

若要使用 registerDB 命令,您必須是 Azure DevOps 應用層伺服器上的 Azure DevOps Administrators 群組成員,以及 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 選擇性。 如果您在使用 /AnalysisInstance 選項指定的伺服器上有多個這類資料庫,請指定您想要搭配 Azure DevOps Server 使用的 Analysis Services 資料庫名稱。
preview 選擇性。 顯示您必須採取的動作以更新組態。
continue 選擇性。 指定即使嘗試尋找一或多個資料庫期間發生錯誤, RemapDB 命令仍應該繼續。 如果您使用 /continue 選項,則您指定的伺服器或伺服器上找不到其資料庫的任何集合,都會重新設定為使用裝載組態資料庫的伺服器和實例。

必要條件

若要使用 remapDBs 命令,您必須是 Azure DevOps Administrators 安全組的成員,以及 Azure DevOps Server 使用之任何 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

RepairJobQueue

您可以使用 repairJobQueue 命令來修正已停止針對部署和集合主機執行的排程工作。

TfsConfig repairJobQueue

必要條件

若要使用 repairJobQueue 命令,您必須是執行 TfsConfig 之電腦上的本機系統管理員群組成員。 您也必須是 Azure DevOps Server 部署所使用之所有 SQL Server 實例的系統管理員安全性角色成員。

備註

如果您注意到任何排程的工作未執行,您通常會使用 repairJobQueue 命令。
此命令不會採用任何自變數,而且需要設定 Azure DevOps Server 部署。

範例

TfsConfig repairJobQueue

設定

您可以使用 settings 命令,將通知介面所使用的統一資源定位器變更自動化 (URL) ,以及用於 Azure DevOps Server 的伺服器位址。 根據預設,通知介面 URL 和伺服器 URL 符合 Azure DevOps Server,但您可以設定個別的 URL。 例如,您可能想要針對 Azure DevOps Server 產生的自動電子郵件使用不同的 URL。 您必須從應用程式層執行這項工具來更新所有伺服器,使其使用新的 URL。

若要以互動方式變更這些 URL,或只是檢視目前的設定,您可以使用適用於 Azure DevOps 的管理控制台。 請參閱 系統管理工作快速參考

TfsConfig settings [/publicURL:URL]
選項 Description
publicUrl 指定 Azure DevOps 應用層伺服器的 URL。 此值會儲存在 Azure DevOps 的組態資料庫中。

必要條件

您必須是 Azure DevOps Administrators 安全組的成員,以及應用層伺服器上的 Administrators 群組。 如需詳細資訊,請參閱設定 Azure DevOps Server的系統管理員許可權

備註

在部署 Azure DevOps Server 時,設定命令會變更伺服器對伺服器通訊的連接資訊。 在 /publicURL 中指定的 URL 必須可供部署內的所有伺服器使用。

範例

下列範例會將 NotificationURL 的值變更為 http://contoso.example.com/tfs ,並將 ServerURL 的值變更為 http://contoso.example.com:8080/tfs

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

設定

您可以使用 安裝程式 命令來卸載目前在執行命令的電腦上設定的功能。

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

選項

描述

/uninstall

指定要從執行命令的電腦卸載的一或多個功能。 選項包括:All、ApplicationTier、搜尋 和 VersionControlProxy。

必要條件

若要使用 安裝程式 命令,您必須是 Azure DevOps Administrators 安全組的成員。

範例

下列範例會從目前的電腦卸載所有 Azure DevOps Server 功能。

TfsConfig setup /uninstall:All

下列範例會從目前的電腦卸載應用層和建置功能。

TfsConfig setup /uninstall:ApplicationTier 

TCM

升級至最新版本的 Azure DevOps Server 時,系統會自動嘗試升級測試管理元件,包括測試方案和套件。

如果自動移轉失敗,請使用 TCM 命令,將測試計劃和測試套件手動升級至其各自的工作專案類型, (WIT) 。

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

選項

描述

/upgradeTestPlans

除非使用 /upgradeStatus ,否則為必要專案。

轉換現有的測試計劃與測試套件,以指向以工作項目區分的測試計劃與測試套件。 它還會更新其他現有測試成品 (例如,測試點)、測試回合與測試結果之間,現有的測試管理資料與連結。

/upgradeStatus

除非使用 /upgradeTestPlans ,否則為必要專案。

報告指定項目的測試數據的移轉狀態。 它同時指出指定的專案是否具有任何測試計劃。

/CollectionName:CollectionName

必要。 指定專案集合,其中包含您要移轉測試數據的專案,或檢查移轉狀態。

如果專案集合名稱中有空格,請將名稱以引弧括住,例如 “Fabrikam Fiber Collection”。

/TeamProjectName:TeamProjectName

必要。 指定您要移轉測試數據的專案,或檢查移轉狀態。 此項目必須定義在您使用 /collectionName 參數指定的集合中。

如果項目名稱中有空格,請將名稱括在引號中,例如“My 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 2019

自動命令是專為熟悉 Azure DevOps Server 和設定程式,以及需要在不同計算機上安裝 Azure DevOps Server 的使用者所設計。

例如,如果您使用 Azure DevOps Build,您可以使用 自動 命令,使用相同的組態檔來安裝多個組建伺服器。

使用 /create 選項來建立自動檔案。 此檔案會定義安裝 Azure DevOps Server 的所有組態參數。 接下來,使用 /configure 選項實際執行設定。

此程式可讓您設定從頭到尾 Azure DevOps Server,而不需要在安裝程序期間提供輸入。 如果有多個安裝,這也有助於確保在多部伺服器使用完全相同的組態參數。

TfsConfig unattend /create|configure /type:InstallType /unattendfile:ConfigurationFileName 
    [/inputs:Key1=Value1; Key2=Value2;...] [/verify] [/continue]
選項 描述
建立 使用您指定的名稱和參數,建立自動安裝指令檔。
設定 使用您指定的自動檔案和參數來設定 Azure DevOps Server。 您必須搭配此選項使用 /type 或 /unattendfile。
類型 指定要使用之組態的類型。 當您使用 /configure 時,需要 /type 或 /unattendfile,但不能兩者皆用。
unattendfile 指定要建立或使用的自動安裝指令檔 (視初始參數是 /create 或 /configure 而定)。 當您使用 /configure 時,需要 /unattendfile 或 /type。
輸入 選擇性。 如果您使用 /create,請指定要在建立自動安裝指令檔時使用的設定和值。 如果您使用 /configure,請指定要與自動安裝指令檔一起使用的其他設定和值。

使用 /inputs 的替代方法是在任何純文字編輯器中手動編輯自動安裝指令檔。 這是特定輸入類型的必要專案,例如 ServiceAccountPassword 或 PersonalAccessToken,因為這些秘密值無法使用 /inputs 參數來設定。
驗證 選擇性。 指定僅根據自動安裝指令檔、輸入和組態類型完成驗證檢查的組態執行。 這是執行完整組態的替代方式。
continue 選擇性。 指定應該繼續使用 /create 或 /configure,忽視來自驗證檢查的警告。
InstallType Description
NewServerBasic 設定 Azure DevOps Server的基本開發服務。 這包括原始檔控制、工作專案、建置,以及選擇性地 搜尋。
NewServerAdvanced 設定基本的開發服務,並允許選擇性設定與 Reporting Services 整合。
升級 從支援的舊版升級 Azure DevOps Server 至目前版本。
PreProductionUpgrade 在生產前環境中,測試現有 Azure DevOps Server 部署的升級。 這通常是使用從生產備份還原的資料庫來完成。 此案例包含額外的步驟,以確保新的部署不會干擾生產部署。
ApplicationTierOnlyBasic 使用所提供組態資料庫的現有設定,設定新的應用層。 此選項可讓您使用現有的設定快速啟動並執行新的應用層。 如果您想要變更現有設定的能力,請改用進階 ApplicationTierOnlyAdvanced 類型。
ApplicationTierOnlyAdvanced 使用所有設定的完整控制權來設定新的應用層。 設定預設為所提供組態資料庫的現有值。 如果您想要保留所有現有的設定,請改用 ApplicationTierOnlyBasic 類型。
複製 設定新的 Azure DevOps Server 部署,這是現有部署的複製品。 這通常是使用從生產備份還原的資料庫來建立環境,其中可以測試組態變更、延伸模組和其他修改。 此案例包含額外的步驟,以確保新的部署不會干擾生產部署。
Proxy 設定版本控制 Proxy 服務。

必要條件

  • 您必須是安裝軟體之電腦上的 [Administrators] 群組成員。

  • 根據安裝類型,您也可能需要其他系統管理員權限。

例如,如果您使用自動命令來安裝 Azure DevOps Server ,則必須是將支援 Azure DevOps Server 之 SQL Server 實例的 sysadmin 群組成員。 如需詳細資訊,請參閱將伺服器層級系統管理員新增至 Azure DevOps Server 的 Q & A 一節。

備註

您必須先建立將用來作為部署一部分的服務帳戶,才能使用自動命令來設定 Azure DevOps Server。 您也必須針對選擇的安裝類型來安裝任何必要軟體。 這包括 Azure DevOps Server 本身。 您必須安裝 Azure DevOps Server,但不需要進行設定,因為自動命令會為您執行此動作。

自動命令會設定 Azure DevOps Server元件。 它並不會執行軟體的初始安裝。 電腦具有位元之後,它會根據您的規格設定軟體。

範例

下列範例示範如何為基本安裝 Azure DevOps Server 建立自動檔案。

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

在此範例中,自動安裝指令檔會建立在與此命令相同的目錄中。 記錄檔會建立為此命令的一部分,並在執行此命令時在命令中傳回檔案的位置。

下列範例示範如何指定 Git 存放庫,以在設定期間與 GVFS 搭配使用。

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

下列範例示範如何為 Azure DevOps Proxy 伺服器的組態建立自動檔案。

重要

在此範例中,如果系統管理員想要使用個人存取令牌進行驗證,則必須手動編輯檔案以指定個人存取令牌值。 這可以藉由在建立的自動檔案中新增個人存取令牌的一行,例如: PersonalAccessToken=PersonalAccessTokenValue

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

下列範例示範如何使用 作為組建服務帳戶,在伺服器上FabrikamFiber\BuildSVC建立 Azure DevOps Server 組建的自動檔案,然後使用該自動安裝檔案設定 Azure DevOps Server 建置。

重要

在此範例中,建立自動安裝指令檔之後,系統管理員會手動編輯該檔案以指定組建服務帳戶的密碼。 使用 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 Build FabrikamFiberTFS 的伺服器名稱,以及與控制器 DefaultCollection相關聯的專案集合:

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

    Command: unattend

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

    Feedback
            Send Feedback: True

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

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

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

    Advanced Settings *
            Port: 9191

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

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

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

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

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

ZipLogs

ziplogs 命令的設計目的是要收集記錄,並在 卸除 zip。ProgramData\Microsoft\Azure DevOps\Server Configuration

TfsConfig zipLogs

TfsConfig zipLogs