Get-AzureStorageAccount命令行开关返回HttpRequestException

时间:2014-06-30 08:32:52

标签: azure azure-storage azure-powershell

使用Azure Powershell度过了一天。

经过多方努力,我得到了一些像以前一样工作的命令行程序。 Get-AzureSubscription - 当前返回订阅的详细信息。

不确定这是否相关,但它返回的详细信息之一是CurrentStorageAccountName,它是空的。不确定它是否与Get-AzureStorageAccount命令行开关的目标相同。

Get-AzureStorageAccount将逐字返回以下内容:

  

Get-AzureStorageAccount:发送请求时发生错误。   在行:1个字符:1   + Get-AzureStorageAccount -StorageAccountName" mensch"   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~       + CategoryInfo:未指定:(:) [Get-AzureStorageAccount],HttpRequestException       + FullyQualifiedErrorId:System.Net.Http.HttpRequestException,Microsoft.WindowsAzure.Commands.ServiceManagement.S   torageServices.GetAzureStorageAccountCommand

我假设当我之前运行Set-AzureSubscription命令行开关时它成功了,但它没有给出任何消息。但我上传了一个证书并用相关的指纹运行该命令,并认为我正在路上。

为什么Get-AzureStorageAccount对我不起作用的任何想法?

3 个答案:

答案 0 :(得分:0)

I am not sure of the exact sequence of steps you have followed so listing the steps that I followed on a clean environment
// Get the subscription file. This should open a browser and give you an option to download the settings file
PS C:\> Get-AzurePublishSettingsFile

// Import the file that was downloaded
PS C:\> Import-AzurePublishSettingsFile  C:\Temp\settings.publishsettings


PS C:\> Get-AzureSubscription -Current
SubscriptionName                         : <snip>
SubscriptionId                           : <snip>
ServiceEndpoint                          : https://management.core.windows.net/
ResourceManagerEndpoint                  :
GalleryEndpoint                          :
ActiveDirectoryEndpoint                  :
ActiveDirectoryTenantId                  :
ActiveDirectoryServiceEndpointResourceId :
SqlDatabaseDnsSuffix                     : <snip>
IsDefault                                : True
Certificate                              : <snip>
CurrentStorageAccountName                :
ActiveDirectoryUserId                    :
TokenProvider                            : <snip>


// This retrieves the storage account  detils
PS C:\> Get-AzureStorageAccount
VERBOSE: 11:28:12 PM - Begin Operation: Get-AzureStorageAccount
VERBOSE: 11:28:13 PM - Completed Operation: Get-AzureStorageAccount


StorageAccountDescription :
AffinityGroup             :
Location                  : West US
GeoReplicationEnabled     : True
GeoPrimaryLocation        : West US
GeoSecondaryLocation      : East US
Label                     : <snip>
StorageAccountStatus      : Created
StatusOfPrimary           : Available
StatusOfSecondary         : Available
Endpoints                 : <snip>
StorageAccountName        : <snip>
OperationDescription      : Get-AzureStorageAccount
OperationId               : <snip>
OperationStatus           : Succeeded

遇到列出步骤的博客 http://blogs.msdn.com/b/umits/archive/2012/11/16/manage-your-windows-azure-with-powershell.aspx

答案 1 :(得分:0)

我重新开始,我认为问题可能在于我制作证书的方式。我之前使用过SelfSSL来创建它。

这一次,我运行了以下命令:

makecert -sky exchange -r -n "CN=name of cert" -pe -a sha1 -len 2048 -ss My "E:\AzureCert.cer"

不知道为什么这应该有所作为。

答案 2 :(得分:0)

这可能是身份验证的问题。当使用无效的管理证书进行连接时,我看到了同样的,相当无用的错误。使用Fiddler,我可以看到Azure正在返回403(Forbidden)。确保您拥有有效的管理证书。

您可以执行以下步骤来设置Azure的证书/连接。这是Import-AzurePublishSettingsFile方法的替代方法。

1. Get a msgmt cert for the subscription
2. Upload the cert to Azure if not already
3. Install the cert into the local computer store (My)
4. Run the following:

$subID = "<replaceWithYourId>"
$thumbprint = "<replaceWithYourThumbprint>"
$myCert = Get-Item cert:\LocalMachine\My\$thumbprint
$localSubName = "<replaceWithYourSubscriptionName>"

        Set-AzureSubscription –SubscriptionName $localSubName –SubscriptionId $subID -Certificate $myCert

        $defaultStorageAccount = '<replaceWithYourStorageAccountName>'
        Set-AzureSubscription -SubscriptionName $localSubName -CurrentStorageAccount   $defaultStorageAccount

        Select-AzureSubscription -SubscriptionName $localSubName