无法将AzCopy(devops管道)识别为cmdlet,函数,脚本文件或可运行程序的名称

时间:2019-06-20 10:56:44

标签: azure powershell azure-devops azure-pipelines

当我从本地计算机使用时(安装了azCopy),我有一个PowerShell脚本一直在工作:

AzCopy `
/Source:C:\myfolder `
/Dest:https://mystorageaccount.blob.core.windows.net/mystoragecontainer `
/DestKey:<storage-account-access-key> `
/Pattern:"myfile.txt"

使用azure管道(Microsoft托管代理),此脚本失败,并显示

“ AzCopy.exe:术语'AzCopy.exe'不被识别为cmdlet,函数,脚本文件或可运行程序的名称。”

我尝试了不同的代理,但仍然是相同的错误。 我必须使用哪个代理才能使用azCopy?

我想念明显的东西吗?

是否有另一种方法始终使用powershell做到这一点?

3 个答案:

答案 0 :(得分:0)

要使用AzCpoy将文件复制到Azure,可以使用内置任务Azure File Copy,而无需使用PowerShell:

enter image description here

此外,您可以安装Microsoft Azure Build and Release Tasks扩展名,该扩展名将为您提供带有更多选项的另一个任务“ Azure Copy File Extended”。

答案 1 :(得分:0)

与Shayki Abramczyk同意,他提供的 Azcopy任务也可用于实现复制文件。这是另一种方式,您可以考虑尝试一下:-)

回到此问题。根据错误消息,我认为这是因为托管代理中缺少SDK。

直到现在,Microsoft尚未在每个托管代理中安装 Azure.Storage.AzCopy 。因此,您使用的代理可能不支持此功能。

我们提供了seven different agents供用户使用,但仅安装了支持Azcopy.exe的SDK Hosted VS2017Hosted Windows 2019 with VS2019Hosted Ubuntu 1604

因此,您可以尝试使用这三个代理与powershell一起执行azcopy命令。

修改

因为可执行文件( azcopy.exe )在本地。那么,您的AzCopy.exe在哪里?对我来说是C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy

因此,在脚本中,您需要执行cd命令将目录更改为AzCopy.exe首先位于的文件。

cd “C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy”

注意要做 不要在此处丢失双引号,否则您将得到 x86不是认可。如果文件路径与我的不同,只需更改您的文件路径即可。

然后,由于使用了Powershell,您可能需要使用powershell语法。这是完整的格式示例,可根据您的脚本对其进行修改:

$source="C:\MyFolder"
$dest="https://mystorageaccount.blob.core.windows.net/mystoragecontainer"
$pattern = "myfile.txt"
$destkey = <key>

cd “C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy”
$azcopy = .\AzCopy.exe /Source:$source /Dest:$dest /DestKey: $destkey 
/Pattern: $pattern

请尝试一下。

答案 2 :(得分:0)

对于像我这样的人,由于他们通过在PS脚本中调用AZ副本而出现此错误,从而进入了此线程,这已确认在Windows Hosted的最新(VM2019)版本中未安装AZ副本。但是根据MS的说法,二进制文件存在于映像中,因此您不必安装它,而只需使用正确的路径即可。 有关在VM上安装(或保存)的软件包的更多信息,可以检查此Git Repo

相关问题