使用 powershell 显示 Azure 中多个存储容器中的所有 blob

Showing all the blobs from multiple storage containers in Azure using powershell

我正在尝试使用 powershell 列出我在 Azure 存储帐户中拥有的各种容器中的所有 blob 所以我 运行 下面的命令:

$storageAccountName = "contoso"
$resourceGroup = "Contoso-Rg"
$storageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $resourceGroup -Name $storageAccountName).Value[0]
$context=New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountkey
$containerName =   Get-AzStorageContainer -Context $context

$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourceGroup -Name $storageAccountName

$ctx = $storageAccount.Context

$containerName | ForEach-Object { Get-AzStorageBlob -Container $_ -Context $ctx }

当我 运行 最后一个命令时,它向我抛出错误,如屏幕截图所示。知道我做错了什么以及如何解决这个问题

无需将 $_ 传递给“-contianer”标志,您需要将 $_.Name 传递给 foreach-object 中的容器参数。

发布对共享脚本进行上述更改后,我们能够将所有 bolb 拉入容器。

修改后的脚本如下:

$storageAccountName = "<strgAccountName>"
$resourceGroup = "<rgName>"

$storageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $resourceGroup -Name $storageAccountName).Value[0]
$context=New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountkey

$containerName =   Get-AzStorageContainer -Context $context

$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourceGroup -Name $storageAccountName

$containerName | ForEach-Object { Get-AzStorageBlob -Container $_.Name -Context $context }

这里是示例输出以供参考: