【问题标题】:VSTS Windows Machine file copy robocopy not foundVSTS Windows 机器文件复制 robocopy 未找到
【发布时间】:2019-01-22 04:59:20
【问题描述】:

因此,我们正在设置一个版本,我们希望将一些工件复制到目标服务器以开始部署。不幸的是,当任务启动时,它在实际副本上出错,并出现以下错误:

The term 'robocopy' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

但是,当检查源机器和目标机器时,robocopy 命令(来自 Powershell 和 CMD.exe 都运行良好,并显示默认的 robocopy 启动屏幕。

我们正在使用运行 windows server 2016 的私有构建代理。

我检查了 PATH 变量并且 C:\Windows\System32 在列表中,并且在两个系统上运行搜索会在同一目录中返回 robocopy.exe。

在托管代理上运行任务使其运行良好。所以这绝对是一个本地问题,只是看不出这可能来自哪里。

在构建代理上 echo %PATH% 和 robocopy 的结果:

任务失败的发布结果:

根据 Shayki 的要求,任务定义:

【问题讨论】:

  • 如果您以运行构建代理服务的用户帐户身份登录到该代理机器 - 是否能够找到robocopy
  • 它在 VSTS 本身建议的默认 NT AUTHORITY\NetworkService 下运行。我会尝试重新配置它,看看当我让代理在另一个帐户(本地管理员帐户)上运行时它会做什么
  • 可以上传任务定义吗?
  • 您知道从命令窗口复制/粘贴文本内容比发布图像更容易(且可读性强)?
  • @ShaykiAbramczyk:见编辑 :)

标签: azure-devops robocopy azure-pipelines-release-pipeline


【解决方案1】:

由于某些未知原因,%PATH% 变量在执行 echo %PATH% 时会显示 C:\Windows\System32,但是在通过控制面板内的环境变量时,PATH 环境变量中没有任何条目。

将 C:\Windows\System32 文件夹添加回 PATH 系统环境变量(并将其放在顶部)为我们修复了它。

【讨论】:

  • 在系统环境路径下添加“%SystemRoot%\system32”,也为我解决了这个问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-15
  • 2010-09-22
  • 1970-01-01
  • 2020-04-05
  • 2017-11-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多