使用Add-AzureVHD命令行开关在Azure Powershell中上载VHD的问题

Ben*_*own 5 powershell azure azure-storage

我正在尝试什么应该是一个非常基本的任务.我已经创建了一个工作站模板的本地VHD,我想上传它以便在我的Azure环境中使用.我在Azure Powershell工作.

我上传了我的.cer文件来创建管理证书.我已导入.publishsettings文件,我可以使用Set-AzureSubscription和Select-AzureSubscription,没有明显的问题:

Set-AzureSubscription -SubscriptionName "Windows Azure Enterprise" -CurrentStorageAccount ATOQA

Select-AzureSubscription -SubscriptionName "Windows Azure Enterprise"
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是当我尝试使用Add-AzureVHD时:

PS C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\2012-10\bin> add-azurevhd -destination "https://ATOQA.blob.core.windows.net/vhds/ztemplate-W7.vhd" -localfilepath "C:\VM\W7_Template\ztemplate-w7.vhd"
add-azurevhd : "An exception occurred when calling the ServiceManagement API. HTTP Status Code: 404. Service Management Error Code: ResourceNotFound. Message: The requested storage account 
'atoqa' was not found.. Operation Tracking ID: df91c24901254047b39a7a7d5b037ea0."
At line:1 char:1
+ add-azurevhd -destination "https://ATOQA.blob.core.windows.net/vhds/ztemplate-W7 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Add-AzureVhd], ServiceManagementClientException
    + FullyQualifiedErrorId : Microsoft.WindowsAzure.Management.ServiceManagement.StorageServices.AddAzureVhdCommand
Run Code Online (Sandbox Code Playgroud)

我很确定我用来指定-destination的信息是正确的,因为我直接从Azure站点上的容器URL字段中复制了它.

我哪里错了?我一直在使用一些网站作为指南,让您了解我一直在做的工作:

http://www.cloudtec.ch/blog/tech/upload-vhd-to-azure.html

http://msdn.microsoft.com/en-us/library/windowsazure/dn205185.aspx

我也尝试使用相同的基本步骤使用CSUPLOAD并获得一条消息,指出"找不到存储帐户",这让我相信我用错误的信息填充参数,但我真的很困惑我的错误正是如此.

很多,非常感谢提前!

Gau*_*tri 7

简答:

请确保您的存储帐户与指定的订阅相同Set-AzureSubscription.

答案很长:

发生的事情(我认为)是,当您调用时Set-Subscription,cmdlet不会检查存储帐户是否在同一订阅中.现在,当您调用Add-AzureVhd并指定目标URL时,cmdlet需要查找存储帐户密钥并Get Storage Account Keys使用订阅ID和管理证书进行操作.由于指定订阅中不存在此存储帐户,因此您将收到"资源未找到"错误.