在Powershell中使用Get-AzureStorageKey无法获取Azure存储密钥

时间:2018-03-20 20:35:55

标签: powershell azure azure-storage

我使用应用程序帐户登录(服务原则)然后运行Get-AzureStorageKey -StorageAccountName myclassicStorageAccount 并得到:这个错误: Get-AzureStorageKey:未指定默认订阅。使用Select-AzureSubscription -Default设置默认订阅。 但是当我运行Select-AzureSubscription -Default时,它告诉我这个sub不存在,即使这个帐户是该角色的所有者角色但是。

请帮忙。 感谢。

1 个答案:

答案 0 :(得分:1)

实际上,如果您使用服务主体登录帐户,则无法使用经典的Power Shell cmdlet。

您可以使用Azure Rest API获取存储帐户访问密钥,您可以查看此answer。您可以使用以下电源shell。

Invoke-AzureRmResourceAction -ResourceId "/subscriptions/*******/resourceGroups/stlvm/providers/Microsoft.ClassicStorage/storageAccounts/stlsac"  -Action "listKeys" -ApiVersion "2016-11-01" -Force

您可以在Azure门户上获取资源ID。

enter image description here

我在实验室测试,它对我有用。

enter image description here

更新

您可以使用Get-AzureRmResource获取经典存储帐户资源组。

##`stlsac` is my classic storage account name, replace it
$storage = Get-AzureRmResource | Where {$_.ResourceType -eq "Microsoft.ClassicStorage/storageAccounts" -and $_.ResourceName -eq "stlsac"}

Invoke-AzureRmResourceAction -ResourceName stlsac -ResourceType Microsoft.ClassicStorage/storageAccounts -ResourceGroupName $storage.ResourceGroupName -Action "listKeys" -ApiVersion "2016-11-01" -Force