使用 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 命令,並指定您想要協助的命令名稱。 例如,若要取得 帳戶 命令的說明:
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 案例。 如果某些集合無法連線,請使用繼續旗標。 稍後可以再次執行 Add,以更新任何遺漏的集合。 將帳戶加入至為了使用該帳戶做為服務帳戶所需的群組。 |
Set | 只會將服務設定為使用已新增至資源的帳戶。 適用於 NLB 案例。 |
刪除 | 從所有資源中移除帳戶。 刪除帳戶時應該使用預防措施,因為它可能會導致其他伺服器遭到拒絕服務。 |
ResetOwner | 如果資料庫在移動、複製或災害復原過程中還原,資料庫擁有者可以切換至還原伺服器的系統管理員。 此選項會逐一查看所有資料庫,並將 dbo 登入設定為目前的擁有者。 |
AccountType | Description |
---|---|
AdminConsole | 管理主控台使用者是已授與各種資源使用主控台之最低許可權的使用者。 |
ApplicationTier | 變更核心 Web 服務之 appPool 上的服務帳戶。 (TFSService) |
Proxy | 變更 Proxy Web 服務之 appPool 上的服務帳戶。 (TFSProxy) |
ReportingDataSource | 變更報表用來存取報告數據的帳戶。 (TFSReports) |
預設值為 ApplicationTier。
sqlInstance 和 databaseName 僅適用於在設定應用層之前將帳戶新增至資料庫時使用。 這主要適用於執行 [僅限 AT 組態精靈] 之前需要另一個帳戶的災害復原案例。
新增或變更帳戶時,會使用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 實例的 sysadmin 角色。
如果您使用 /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的資料庫擁有權TFS_Warehouse
ContosoMain
變更為您執行命令的用戶帳戶。
注意
當您使用此命令時,無法指定要設定為資料庫擁有者的帳戶。 該擁有者將會設為您用來執行命令的帳戶。
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,請參閱將報表新增至專案。
範例
下列範例示範如何將敏捷式報表新增至 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驗證通訊協定
- 交涉:使用交涉 (Kerberos) 驗證通訊協定
/siteType
指定要變更其網路驗證通訊協議的網站 (應用層或 Proxy) 。 應用層是預設值。
必要條件
若要使用 驗證 命令,您必須是 Azure DevOps Administrators 安全組的成員,以及應用層伺服器或 Proxy 伺服器上的本機系統管理員,視 siteType 選項的值而定。
備註
「驗證」命令是由想要變更 Azure DevOps Server 所依賴之一或多個網站的網路驗證通訊協議的系統管理員所使用。 系統管理員會從應用程式層執行此命令,來更新需要變更網路驗證通訊協定的這些網站。 此命令會變更 IIS 中繼基底中的 NTAuthenticationProviders 屬性。
使用 [驗證 ] 命令來變更驗證通訊協定之前,您可以使用 /viewAll 選項執行 命令,以查看現有的設定。
範例
下列範例會顯示指派給網路驗證通訊協定的目前值。
TFSConfig Authentication /viewAll
憑證
使用 certificates 命令來變更憑證在部署中使用 HTTPS、安全套接字層 Azure DevOps Server (SSL) 和憑證的部署中設定客戶端驗證的方式。
TfsConfig certificates [/machine] [/disable] [/autoSelect] [/noprompt] [/thumbprints:thumbprint1[,thumbprint2,...]]
選項 | Description |
---|---|
機器 | 指定憑證清單會來自本機計算機內容,而不是目前的用戶內容。 |
disable | 指定將會停用客戶端驗證憑證設定。 |
autoSelect | 指定將會自動從憑證清單中選取憑證。 [管理客戶端憑證] 視窗將不會開啟。 |
noprompt | 指定執行 [憑證] 命令時,[管理客戶端憑證] 視窗將不會開啟。 |
指紋 | 指定將使用符合指定指紋的憑證。 您可以使用逗號分隔個別指紋,以指定多個憑證。 |
必要條件
若要使用 憑證 命令,您必須是執行命令之電腦上的 Azure DevOps Administrators 安全組和本機 Administrators 群組的成員。 如需詳細資訊,請參閱 Azure DevOps Server 的許可權參考。
備註
根據預設, 憑證 命令會自動從目前使用者的憑證清單中選取客戶端憑證。 不過,您可以使用 命令的選項,從目前用戶內容或本機計算機內容指定特定的憑證或憑證。
使用憑證命令之前,您必須先在部署 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 中具名實例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>]
選項 | Description |
---|---|
indexingStatus | 顯示程式碼索引服務的狀態和組態。 |
setIndexing | on:開始為所有變更集編製索引。 off:停止為變更集編製索引。 keepupOnly:停止為先前建立的變更集編製索引,並且開始僅為新變更集編製索引。 |
ignoreList | 指定您不要編製索引之程式碼檔及其路徑的清單。 add:將您不要編製索引的檔案,新增到忽略的檔案清單中。 remove:從忽略的檔案清單中,移除您要編製索引的檔案。 removeAll:清除忽略的檔案清單,並開始為所有的檔案編製索引。 view:查看未編製索引的所有檔案。 ServerPath:指定程式代碼檔案的路徑。 您可以在伺服器路徑的開頭、結尾或兩端使用萬用字元 (*)。 |
listLargeFiles | 顯示超過指定大小 (KB) 的指定檔案數。 然後,您就可以使用 /ignoreList 選項來排除這些檔案,不為其編製索引。 為此,您需要 使用 Update 3 的 Team Foundation Server 2013。 |
reindexAll | 清除先前索引資料,並重新開始編製索引。 |
destroyCodeIndex | 刪除程式碼索引,並移除所有索引資料。 如果您使用 /noPrompt 選項,則不需要確認。 |
temporaryDataSizeLimit | 控制處理變更集時,CodeLens 會建立多少暫存資料。 預設限制為 6 GB (Update 5 為 2 GB)。 view:顯示目前的大小限制。 SizeInGBs:變更大小限制。 disable:移除大小限制。 在 CodeLens 處理新的變更集之前,會先檢查此限制。 如果暫存資料超過此限制,CodeLens 將會暫停處理舊的變更集,而不是新的變更集。 清理資料並降到低於此限制之後,CodeLens 就會重新開始處理。 每天會自動執行一次清理。 這表示,在開始執行清理之前,暫存資料可能會超過此限制。 為此,您需要 使用 Update 4 的 Team Foundation Server 2013。 |
indexHistoryPeriod | 控制將歷程記錄編製索引的時間長度。 這會影響 CodeLens 向您顯示的記錄數量。 預設限制為 12 個月。 這表示 CodeLens 只會顯示最近 12 個月內的歷程記錄。 view:顯示目前的月數。 all:編製索引所有歷程記錄。 NumberOfMonths:變更用來編製變更記錄索引的月數。 為此,您需要 使用 Update 4 的 Team Foundation Server 2013。 |
collectionName | 指定要在哪個名稱的專案集合上執行 CodeIndex 命令。 如果未使用 /CollectionId,則此為必要項。 |
collectionId | 指定要在哪個識別碼的專案集合上執行 CodeIndex 命令。 如果您未使用 /CollectionName,則為必要項 |
必要條件
若要使用 codeIndex 命令,您必須是 Azure DevOps Administrators 安全組的成員。 請參閱 Azure DevOps Server 的許可權參考。
範例
若要查看程式碼索引狀態和組態:
TfsConfig codeIndex /indexingStatus /collectionName:"Fabrikam Web Site"
若要開始為索引所有變更集編製索引:
TfsConfig codeIndex /setIndexing:on /collectionName:"Fabrikam Web Site"
若要停止為先前建立的變更集編製索引,並且開始只為新變更集編製索引:
TfsConfig codeIndex /setIndexing:keepupOnly /collectionName:"Fabrikam Web Site"
若要找出最多 50 個大於 10 KB 的檔案:
TfsConfig codeIndex /listLargeFiles /fileCount:50 /minSize:10 /collectionName:"Fabrikam Web Site"
若要從索引排除特定檔案,並將它加入至忽略的檔案清單:
TfsConfig codeIndex /ignoreList:add "$/Fabrikam Web Site/Catalog.cs" /collectionName:"Fabrikam Web Site"
查看未編製索引的所有檔案:
TfsConfig codeIndex /ignoreList:view
若要清除先前編製索引的資料,並重新開始編製索引:
TfsConfig codeIndex /reindexAll /collectionName:"Fabrikam Web Site"
若要儲存所有變更集記錄:
TfsConfig codeIndex /indexHistoryPeriod:all /collectionName:"Fabrikam Web Site"
若要移除 CodeLens 暫存資料的大小限制,並繼續編製索引,而不管暫存資料大小:
TfsConfig codeIndex /temporaryDataSizeLimit:disable /collectionName:"Fabrikam Web Site"
若要刪除經過確認的程式碼索引:
TfsConfig codeIndex /destroyCodeIndex /collectionName:"Fabrikam Web Site"
集合
您可以使用集合命令,從部署 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_DefaultCollection
ContosoMain
的資料庫啟用數據行存放區索引。
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 實例的 sysadmin 角色成員。
備註
如果您要將支援壓縮的資料庫從 SQL 實例移至不支援壓縮的 SQL 實例,您通常會使用 dbCompression 命令。 在此情況下,您必須先停用壓縮和解壓縮所有索引,才能成功移動資料庫。 同樣地,如果您要將資料庫移回支援壓縮的 SQL 實例,您可能想要重新啟用壓縮,以節省空間。
此命令只會變更 Azure DevOps Server 是否偏好使用資料庫頁面壓縮 , 您的資料庫仍必須裝載在支援壓縮的 SQL 實例中。 如需詳細資訊,請參閱 SQL Server 版本支援的功能。
範例
下列範例示範如何針對在具名實例上執行之伺服器上執行之 SQL 實例ContosoMain
TeamDatabases
上名為 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]
選項 | Description |
---|---|
ageInDays | 超過指定天數的測試結果將會遭到刪除或預覽。 |
sqlInstance | 裝載要刪除或預覽測試結果之資料庫的伺服器名稱,如果使用預設值以外的實例,則為 實例的名稱。 如果您指定實例,則必須使用格式: ServerName\InstanceName 。 |
databaseName | 要刪除或預覽測試結果的資料庫名稱。 |
類型 | 選擇性。 要刪除的測試結果類型。 有效值為 自動化、 手動和 全部。 |
preview | 選擇性。 顯示會根據天數刪除的測試結果數目,但不要刪除這些結果。 |
必要條件
若要使用 deleteTestResults 命令,您必須是指定之 SQL Server 實例的 sysadmin 角色成員。
備註
使用 /preview 參數可查看依專案名稱和年份排序的測試結果,而不刪除這些結果。
範例
下列範例示範如何針對在具名實例TeamDatabases
上ContosoMain
執行之伺服器上所執行之 SQL 實例上名為 TFS_DefaultCollection
的資料庫,刪除早於 60 天的手動測試結果。
TfsConfig deleteTestResults /ageInDays:60 /sqlInstance:ContosoMain\TeamDatabases /databaseName:TFS_DefaultCollection /type:manual
DeploymentPool
deploymentPool 命令的設計目的是將所有部署群組從一個部署集區移轉至另一個部署集區。
TfsConfig deploymentpool /migrateDeploymentGroups /fromPool:<source pool name> /toPool:<destination pool name>
選項 | Description |
---|---|
fromPool | 來源集區名稱。 |
toPool | 目的地集區名稱。 |
Identities
身分識別命令會列出或變更部署 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>]
選項 | 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\\Developers
和 Contoso1\\Testers
,有助於簡化跨 Azure DevOps Server、SQL Server Reporting Services 和 SharePoint 產品的許可權管理。
TfsConfig identities
TFSConfig - Team Foundation Server Configuration Tool
Copyright � Microsoft Corporation. All rights reserved.
Account Name Exists (see note 1) Matches (see note 2)
--------------------------------------------------------------------
CREATOR OWNER True True
Contoso1\hholt True True
BUILTIN\Administrators True True
Contoso1\Developers True True
Contoso1\Testers True True
Contoso1\PMs True True
Contoso1\jpeoples True True
Contoso1\Domain Admins True True
Contoso1\SVCACCT1 True True
9 security identifiers (SIDs) were found stored in Team Foundation Server. Of these, 9 were found in Windows. 0 had differing SIDs.
下列範例示範如何將 Azure DevOps Server 中所有帳戶的 SID 從 Contoso1 網域變更為網域中具有相符名稱之帳戶的 ContosoPrime
SID。 只有相符的帳戶名稱會更新其 SID。 例如,如果hholt
帳戶以 和ContosoPrime\hholt
的形式Contoso1\hholt
存在,帳戶 SID 將會變更為 的 ContosoPrime\hholt
SID。 ContosoPrime\hholt
如果帳戶不存在,將不會針對 Contoso1\hholt
更新 SID。
TfsConfig identities /change /fromdomain:Contoso1 /todomain:ContosoPrime
下列範例示範如何將單一用戶帳戶的帳戶 Contoso1\hholt
變更為另一個用戶帳戶的帳戶 ContosoPrime\jpeoples
。
TfsConfig identities /change /fromdomain:Contoso1 /todomain:ContosoPrime /account:hholt /toaccount:jpeoples
下列範例示範如何在將部署網域從 Contoso1
變更為 ContosoPrime
時,變更部署中所使用的服務帳戶 SID NT AUTHORITY\NETWORK SERVICE
Azure DevOps Server。 若要變更系統帳戶,例如 Network Service,您必須遵循兩階段的程序。 您必須先將服務帳戶從 NT AUTHORITY\NETWORK SERVICE
變更為新網域中的網域 TempSVC
帳戶,然後將帳戶變更回新網域中伺服器上的NETWORK SERVICE。 組態資料庫裝載於 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"
作業
您可以使用 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 部署,以及中斷連結一個感興趣的集合。
相反地,您現在可以還原組態資料庫的一致複本和感興趣的集合資料庫,並執行 flineDetach 命令。 卸離的集合資料庫接著可以附加至適當版本的任何 Azure DevOps Server 部署。
範例
下列範例說明使用名為 TFS_PrimaryCollection
的組態資料庫卸離集合資料庫,並在具 TFS_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 存放庫,以搭配使用 Git 虛擬檔案系統 (GVFS) (TFS 2018 Update 1) |
必要條件
若要使用 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 資料庫不存在,則為必要項。 指定作為 TFSReports) SQL Server Reporting Services (數據源帳戶的帳戶密碼。 如需詳細資訊,請參閱 Azure DevOps Server 中的服務帳戶和相依性。 |
必要條件
若要使用 rebuildWarehouse 命令,您必須是下列群組的成員:
執行 Azure DevOps 管理控制台的伺服器或伺服器上的 Azure DevOps 系統管理員安全組和 Administrators 安全組
伺服器或伺服器上執行裝載資料庫之 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>
選項 | 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 實例的系統管理員群組成員。 如需詳細資訊,請參閱將伺服器層級系統管理員新增至 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