Windows 機檔案複製工作

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

使用此工作可將應用程式安裝在 Windows 電腦上所需的應用程式檔和其他成品(例如 powershell 腳本和 powershell-DSC 模組)複製到其中。 它會使用 RoboCopy,此為快速複製資料所建立的命令列公用程式。

注意

在 Microsoft Team Foundation Server (TFS) 2018 和舊版本中,組建和發行管線稱為定義執行稱為組建服務連接稱為服務端點階段稱為環境,以及作業稱為階段

YAML 程式碼片段

# Windows machine file copy
# Copy files to remote Windows machines
- task: WindowsMachineFileCopy@2
  inputs:
    sourcePath: 
    #machineNames: # Optional
    #adminUserName: # Optional
    #adminPassword: # Optional
    targetPath: 
    #cleanTargetBeforeCopy: false # Optional
    #copyFilesInParallel: true # Optional
    #additionalArguments: # Optional

引數

引數 描述
來源 要複製之檔案的路徑。 可以是本機實體路徑( c:\files 例如)或 UNC 路徑 \\myserver\fileshare\files (例如)。 您可以使用預先定義的系統變數,例如 $(Build.Repository.LocalPath) (代理程式電腦上的工作資料夾) ,這樣可讓您輕鬆地在裝載 automation 代理程式的電腦上指定組建構件的位置。
機器 以逗號分隔的電腦 Fqdn 或 IP 位址清單,可選擇性地包含埠號碼。 可為以下項目:
- Azure 資源群組的名稱。
-以逗號分隔的電腦名稱稱清單。 範例: dbserver.fabrikam.com, dbserver_int.fabrikam.com:5986,192.168.34:5986
-先前工作的輸出變數。
系統管理員登入 目標主機上網域或本機系統管理帳戶的使用者名稱) (s。
-支援的格式包括:網域 \使用者名稱、使用者 名稱machine-name\username
-不支援 UPN 格式 username@domain.com ,例如和內建系統帳戶(例如 NT Authority\System )。
密碼 以上指定之系統管理帳戶的密碼。 請考慮使用組建或發行管線的全域秘密變數來隱藏密碼。 範例: $(passwordVariable)
目的資料夾 要將檔案複製到其中的 Windows 電腦 (s) 上的資料夾。 範例: C:\FabrikamFibre\Web
Advanced-清除目標 設定此選項可在複製新檔案之前,先刪除目的資料夾中的所有檔案。
Advanced-平行複製檔案 設定此選項,以平行方式將檔案複製到所有目的電腦,以加速複製程式。
Advanced-其他引數 要傳遞給 RoboCopy 進程的引數。 範例: /min:33553332 /l
選取機器依據 根據您在使用 篩選準則 參數時要如何指定群組中的電腦,請選擇 [ 電腦名稱稱 ] 或 [ 標記]。
篩選準則 選擇性。 電腦名稱稱或標籤名稱的清單,用來識別工作將設為目標的機器。 篩選準則可以是:
- Azure 資源群組的名稱。
-先前工作的輸出變數。
-標記名稱或電腦名稱稱的逗號分隔清單。
使用電腦名稱稱時的格式是以逗號分隔的電腦 Fqdn 或 IP 位址清單。
將篩選的標記名稱指定為 {TagName}{Value} 範例: Role:DB;OS:Win8.1
控制項選項 請參閱 控制項選項

開放原始碼

這項工作開放原始碼在 GitHub 上。 歡迎您提供意見反應和投稿。

常見問題集

使用這項工作時,出現系統錯誤53。 為什麼?

當找不到指定的路徑時,通常就會發生這種情況。 這可能是因為防火牆封鎖了檔案和印表機共用所需的埠,或是路徑規格無效。 如需詳細資訊,請參閱 TechNet 上的 錯誤 53

是否需要代理程式?

您至少需要一個 代理程式 來執行您的組建或發行。

我遇到問題。 如何進行疑難排解?

請參閱 疑難排解組建和發行

我無法選取預設的代理程式組件區,也無法將組建或發行排在佇列中。 我要如何修正此問題?

請參閱 代理程式集區。

我的 NuGet 推送工作失敗,發生下列錯誤:「錯誤:無法取得本機簽發者憑證」。 我該怎麼辦?

您可以藉由新增受信任的根憑證來修正此問題。 您可以將環境變數新增 NODE_EXTRA_CA_CERTS=file 至組建代理程式,也可以在管線中新增工作 NODE.EXTRA.CA.CERTS=file 變數。 如需此變數的詳細資訊,請參閱 Node.js 檔 。 如需在管線中設定變數的指示,請參閱在 管線中設定變數

我使用 TFS 內部部署,而且沒有看到其中一些功能。 為什麼不用?

其中有些功能僅適用于Azure Pipelines ,但尚未在內部部署使用。 如果您已 升級至最新版本的 TFS,某些功能可在內部部署使用。