如何列出Azure存储容器和Blob

fcg9iug3  于 2023-02-09  发布在  其他
关注(0)|答案(5)|浏览(155)

我是Azure存储的新手,我想我可能误解了一些概念。
我想使用PowerShell列出我的所有存储容器和Blob。
我可以使用以下代码列出我的所有存储帐户:

Get-AzureStorageAccount | Select StorageAccountName, GeoPrimaryLocation

每个存储帐户都有一个容器。如何获取它?我没有看到列出容器的命令。有一个Get-AzureStorageContainer命令,但它不将存储帐户作为输入。
我错过了什么?

  • -编辑--
    我认为我可以做到以下几点:
$context = New-AzureStorageContext -StorageAccountName myStorageAccount -StorageAccountKey xxx
Get-AzureStorageContainer -Context $context
Get-AzureStorageBlob -Context $context -Container myContainer

为什么需要上下文?

zz2j4svz

zz2j4svz1#

不确定这是否是您想要的,但我可以使用New-AzureStorageContextGet-AzureStorageContainers列出容器。

$ctx = New-AzureStorageContext -StorageAccountName <name> -StorageAccountKey <key>

Get-AzureStorageContainer -Context $ctx
e7arh2l6

e7arh2l62#

对于新的Az模块,您需要执行以下操作

Import-Module Az
$azStorageAccountName = "" # Name of your storage account 
$azStorageAccountKey = "" # Access key for your storage account
$azContainerName = "" # Container name to list your blobs
$azResourceGroupName = "" # Resource group name where storage account lives

$connectionContext = (Get-AzStorageAccount -ResourceGroupName $azResourceGroupName -AccountName $azStorageAccountName).Context
# Get a list of containers in a storage account
Get-AzStorageContainer -Name $azContainerName -Context $connectionContext | Select Name
# Get a list of blobs in a container 
Get-AzStorageBlob -Container $azContainerName -Context $connectionContext | Select Name
weylhg0b

weylhg0b3#

列出所有容器

Get-AzureStorageContainer

列出容器中的所有Blob。

Get-AzureStorageBlob -Container $ContainerName

您还可以在此处找到PowerShell和Azure存储的完整入门指南。Azure Storage PowerShell Getting Started

erhoui1w

erhoui1w4#

下面是我在ARM中的做法:

function Get-StorageContainer
{
    param
    (
        [string]$StorageAccountName
    )

    $StorageAccounts = Get-AzureRmStorageAccount

    $selectedStorageAccount = $StorageAccounts | where-object{$_.StorageAccountName -eq $StorageAccountName}
    $key1 = (Get-AzureRmStorageAccountKey -ResourceGroupName $selectedStorageAccount.ResourceGroupName -name $selectedStorageAccount.StorageAccountName)[0].value

    $storageContext = New-AzureStorageContext -StorageAccountName $selectedStorageAccount.StorageAccountName -StorageAccountKey $key1
    $storageContainer = Get-AzureStorageContainer -Context $storageContext
    $storageContainer
}

Get-StorageContainer -StorageAccountName storageaccount
o7jaxewo

o7jaxewo5#

连接-AzAccount
Write-Host“正在收集容器公共访问级别信息...”n”[系统.集合.数组列表]$saUsage = New-Object -TypeName系统.集合.数组列表
$订阅=获取AzSubscription〈# -订阅ID“6 f3 ecdd 5 - 6sff 85 - 4sss 9 b-a9 ec-0a 7sds 2ad 6”#〉
foreach($个订阅中的$个订阅){写入-主机$订阅.ID集-AzContext-订阅对象$订阅

$storageAccounts = Get-AzStorageAccount

     foreach ($storageAccount in $storageAccounts) {
           #list containers
           $storages = Get-AzStorageAccount -ResourceGroupName $storageAccount.ResourceGroupName -StorageAccountName $storageAccount.StorageAccountName
            
           $ctx = $storageAccount.Context

           $containers = Get-AzStorageContainer -Context $ctx

            foreach($container in $containers){
                $StorageAccountDetails = [ordered]@{
                             SubscriptionName = $subscription.Name
                             StorageAccount = $storageAccount.StorageAccountName
                             ContainerName = $container.Name
                             ContainerPublicAccess = $container.PublicAccess
                }
                $saUsage.add((New-Object psobject -Property $StorageAccountDetails)) | Out-Null 
                Write-Host "object written to list"
            }
    }

} $sa使用情况|导出-Csv-路径C:\容器访问级别.csv -无类型信息

相关问题