缺少 Azure New-AzureRmResource "Account Type",但如果我添加它 "Parameter not found"

Azure New-AzureRmResource "Account Type" missing, but if I add it "Parameter not found"

我正在尝试使用 New-AzureRmResource 创建一个新的存储帐户。但是我 运行 陷入了令我困惑的事情。我的命令在这里:

New-AzureRmResource -Location "East US" -ResourceGroupName "myResGrp" -ResourceName "storagename" -ResourceType "microsoft.storage/storageaccounts" -Kind "Storage"

但这会转储错误

New-AzureRmResource : AccountTypeMissing : The accountType field is missing from the request.

所以我将其添加到("AccountType" 和 "accountType" 都试过了):

New-AzureRmResource -Location "East US" -ResourceGroupName "myResGrp" -ResourceName "storagename" -ResourceType "microsoft.storage/storageaccounts" -Kind "Storage" -AccountType "Standard_RAGRS"

然后我得到错误:

New-AzureRmResource : A parameter cannot be found that matches parameter name 'AccountType'.

我如何传递这个?我想我在这里遗漏了一些简单的东西。谢谢。

回答感谢楼下帮助

$props = New-Object PSObject

$props | add-member AccountType "Standard_RAGRS"

$props | add-member Kind "Storage"

New-AzureRmResource -Location "East US" -ResourceGroupName "myResGrp" -ResourceName "storagename" -ResourceType "microsoft.storage/storageaccounts" -Properties $props -ApiVersion "2015-06-15"

您应该将 accountType 放入参数 "Properties" 的散列 table 中(如果您使用的是 1.5.0,则为 "PropertyObject"),并且您应该指定 API 版本也是。这是一个例子。

$properties = @{"AccountType"="Standard_RAGRS"}

New-AzureRmResource -Location "East US" `
                    -ResourceGroupName "myResGrp" `
                    -ResourceName "storagename" `
                    -ResourceType "Microsoft.Storage/storageAccounts" `
                    -Properties $properties `
                    -ApiVersion "2015-06-15"

您需要指定API版本,因为在最新的Azure PowerShell中,默认情况下,他们使用2016-03-30作为存储帐户,已经将AccountType更改为SKU,但是命令New-AzureRmResource暂不支持SKU

如果您有 AzureRM.Resources 2.0 版,它应该支持完成此工作所需的最新属性。在 api 的 2016-01-01 版本之前,SKU 被称为 accountType,这是您遇到的问题。

https://msdn.microsoft.com/en-us/library/azure/mt712701.aspx

检查您使用的模块版本 运行:

 Get-Module  AzureRM.Resources 

我建议使用 Update-Module 更新您的 AzureRM 模块(假设安装了 WMF5 并且您首先使用 get-module/install-module 安装了 AzureRM.Resources 模块)。

如果您无法升级您的 AzureRM.Resources 模块;您始终可以使用 -Properties @{ "AccountType"="Standard_RAGRS"} 指定缺少的属性。您还可以尝试使用 New-AzureRmStorageAccount ,它可能具有您要查找的属性(因为该 cmdlet 在 AzureRM.Storage 下,并且可能具有不同的版本/子集)。

希望对您有所帮助!:)