Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure AzCopy(devops管道)不能识别为cmdlet、函数、脚本文件或可操作程序的名称_Azure_Powershell_Azure Devops_Azure Pipelines - Fatal编程技术网

Azure AzCopy(devops管道)不能识别为cmdlet、函数、脚本文件或可操作程序的名称

Azure AzCopy(devops管道)不能识别为cmdlet、函数、脚本文件或可操作程序的名称,azure,powershell,azure-devops,azure-pipelines,Azure,Powershell,Azure Devops,Azure Pipelines,我有一个PowerShell脚本,当我从本地计算机(我已安装azCopy)使用它时,它会一直工作: AzCopy` /来源:C:\myfolder` /目的地:https://mystorageaccount.blob.core.windows.net/mystoragecontainer ` /目的地键:` /模式:“myfile.txt” 使用azure管道(Microsoft Hosted agent)此脚本失败 “AzCopy.exe:术语'AzCopy.exe'不能识别为cmdlet

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

AzCopy`
/来源:C:\myfolder`
/目的地:https://mystorageaccount.blob.core.windows.net/mystoragecontainer `
/目的地键:`
/模式:“myfile.txt”
使用azure管道(Microsoft Hosted agent)此脚本失败

“AzCopy.exe:术语'AzCopy.exe'不能识别为cmdlet、函数、脚本文件或可操作程序的名称。”

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

我是否错过了显而易见的事情


是否有其他方法始终使用powershell执行此操作?

要使用AzCpoy将文件复制到Azure,您可以使用内置任务,而不需要使用powershell:


此外,您还可以安装扩展,该扩展为您提供了另一个任务“Azure Copy File Extended”,并提供了更多选项。

同意Shayki Abramczyk的意见,他提供的Azcopy任务也可用于实现文件复制。这是另一种方式,你可以考虑尝试一下:-< 回到这个问题上来。根据错误消息,我认为这是因为hosted agent中缺少SDK

直到现在,微软还没有在每个托管代理中安装Azure.Storage.AzCopy。因此,您使用的代理可能不支持此操作

我们只提供用户使用,并且已经安装了支持Azcopy.exe的SDK

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

编辑

因为可执行文件(azcopy.exe)是本地文件。那么,您的AzCopy.exe位于哪里?对我来说,它是
C:\ProgramFiles(x86)\Microsoft SDK\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
$source=“C:\MyFolder”
$dest=”https://mystorageaccount.blob.core.windows.net/mystoragecontainer"
$pattern=“myfile.txt”
$destkey=
cd“C:\Program Files(x86)\Microsoft SDK\Azure\AzCopy”
$azcopy=。\azcopy.exe/Source:$Source/Dest:$Dest/DestKey:$DestKey
/图案:$Pattern

请尝试使用它。

对于像我这样的人,由于在PS脚本中调用AZ copy时出现此错误而登录到此线程,已确认AZ copy未安装在Windows Hosted的最后(VM2019)版本中。但据微软称,图像中存在二进制文件,因此您不必安装它,只需使用正确的路径即可。
有关在VM上安装(或保存)的程序包的详细信息,请检查此

是否使用Microsoft Hosted agent或自托管magnet?我使用Microsoft Hosted agent感谢您的答复。我无法使用azure文件复制任务,因为需要具有完整凭据的服务连接才能工作。因此我使用的是“访问密钥”。我也安装了扩展,但除非我错了,否则它也需要服务连接。我们是说,除非我们使用Azure文件复制任务,否则它无法完成吗?再次感谢您的帮助,谢谢您的回复。AzCopy任务可以正常工作,这不是一个问题,但我需要使用密钥来完成。我尝试了所有代理,但在所有代理中都出现了相同的错误。我在本地计算机命令行中复制了简单的“内联”脚本并正常工作。“AzCopy/Source:D:\MyFolder/Dest:/DestKey:myaccesskey/Pattern:”myfile.txt" . 没有道理。我做错什么了吗?@developer9969,您使用哪个任务?动力地狱?还是Azure Powershell?“azcopy.exe”的命令可以在托管VS2017的Azure Powershell中执行。谢谢。那肯定是做错了什么。我不能使用Azure Powershell,因为它需要使用所有可用的代理进行“服务连接”。甚至还添加了“azurereps”和nothing@developer9969您好,很抱歉我的误导,我已经用在powershell中执行azcopy命令的方式更新了我的答案。请试一试。这对我有用。希望你也一样。请随时让我知道result.Liang的最新状态。感谢您的回复。非常感谢您花时间回复。从第一天起,我可以使用脚本作为示例或使用AzFileCopy任务(需要ServiceConnection)。我需要在管道中进行。我可以在管道中执行该脚本吗?再次感谢
$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