VSTS Windows Machine文件复制中找不到robocopy

3

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

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的结果:Echo 失败任务的发布结果: Release 如Shayki所请求的任务定义: TaskDef

如果您以构建代理服务正在运行的用户帐户登录到该代理机器,它能够找到robocopy吗? - Yan Sklyarenko
根据VSTS自身的建议,它正在以默认的NT AUTHORITY\NetworkService身份运行。我将尝试重新配置它,并查看当代理程序在另一个帐户(本地管理员帐户)上运行时会发生什么。 - Tsteenbakkers
你知道吗,从命令窗口复制/粘贴文本内容比发布图像更容易(也更易读)? - Ken White
@ShaykiAbramczyk:看编辑:) - Tsteenbakkers
@YanSklyarenko:尝试使用从Azure配置的本地管理员账户登录机器并生成上述屏幕。在启动构建时,它会无限期地挂起,并在发布时仍然在robocopy上给出相同的错误。我已经重新启动了服务并重新启动了机器。此外,该机器已被VSTS识别,并在线使用新凭据。 - Tsteenbakkers
显示剩余3条评论
1个回答

3

由于某些未知原因,当执行echo %PATH%命令时,%PATH%变量会显示C:\Windows\System32。但是,在控制面板中查看环境变量时,PATH环境变量中没有该条目。

将C:\Windows\System32文件夹重新添加到PATH系统环境变量中(并将其放在顶部)解决了这个问题。


将"%SystemRoot%\system32"添加到系统环境变量PATH中,也解决了我的问题。 - Zdravko Kolev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接