首页 > 解决方案 > 无法使用 powershell 获取 Azure Blob 容器信息

问题描述

我正在尝试使用 powershell 获取 Azure Blob 容器信息。我正在使用下面的脚本。

我尝试将Set-AzStorageContainerAcl更改为BlobContainer仍然没有运气。

    $StorageAccounts = Get-AzStorageAccount
    FOREACH ($StorageAccount in $StorageAccounts) {   
            $AllContainers = Get-AzStorageContainerAcl -Context $StorageAccount.Context
            $AccountCapacity = 0

            FOREACH ($Container in $AllContainers) { 
            $ListOfBLobs = Get-AzStorageBlob -Container $Container.Name -Context $StorageAccount.Context
            $length = 0
            $BlobCapacity = 0            
            $BlobCapacity = ($listOfBlobs | Measure-Object 'Length' -Sum).Sum

            $AccountCapacity = $AccountCapacity + $BlobCapacity   
            }

这在我使用我的凭据时有效。但是当我尝试使用应用注册连接到订阅时,我遇到了以下错误。

Get-AzStorageContainerAcl : The client 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx' with object id 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx' does not have authorization to perform action 'Microsoft.Storage/storageAccounts/listKeys/action' over scope 
'/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/ResourceGroupName/providers/Microsoft.Storage/storageAccounts/StorageAccountName' or the scope is invalid. If access was recently granted, please refresh your credentials.
At line:11 char:30
+ ... ontainers = Get-AzStorageContainerAcl -Context $StorageAccount.Contex ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Get-AzStorageContainer], CloudException
    + FullyQualifiedErrorId : Microsoft.Rest.Azure.CloudException,Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet.GetAzureStorageContainerCommand

标签: azureazure-blob-storageazure-powershell

解决方案



推荐阅读