Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 如何强制Azure存储帐户成为经典_Powershell_Azure_Storage_Azure Storage_Account - Fatal编程技术网

Powershell 如何强制Azure存储帐户成为经典

Powershell 如何强制Azure存储帐户成为经典,powershell,azure,storage,azure-storage,account,Powershell,Azure,Storage,Azure Storage,Account,我们最近使用Azure资源管理器和模板构建了一个基础架构和应用程序部署框架。为了部署云服务,需要首先设置Azure存储帐户。截至最近,这是通过运行: Switch-AzureMode AzureResourceManager New-AzureStorageAccount -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName -Location $locationName -Type Stan

我们最近使用Azure资源管理器和模板构建了一个基础架构和应用程序部署框架。为了部署云服务,需要首先设置Azure存储帐户。截至最近,这是通过运行:

Switch-AzureMode AzureResourceManager

New-AzureStorageAccount -ResourceGroupName $resourceGroupName -StorageAccountName $storageAccountName -Location $locationName -Type Standard_LRS
这将创建新AzureDeployment cmdlet可用于部署的存储帐户。据我记忆所及,创建的存储帐户将是用户界面中现在标记为“经典”的帐户。但是,根据最近的更改,现在使用上述脚本创建的存储帐户是非经典(V2)。新AzureDeployment无法识别此V2存储帐户,它会在Powershell脚本中抛出此帐户:

New AzureDeployment:ResourceNotFound:未找到存储帐户“teststorage”

如果我在UI中手动创建classic storage帐户,我就可以将其用于部署,而且效果很好

因此,是否可以执行以下操作之一:

  • 是否通过Powershell强制将存储帐户创建为classic
  • 指示New-AzureDeployment cmdlet通过Powershell使用V2存储帐户
  • 切换回asm模式(v1 api)并从此模式创建存储帐户:

    switch-azuremode -Name AzureServiceManagement
    
    实际上,您可以使用ARM(Azure资源管理器)创建“经典”(即旧门户)存储帐户。为此,将下面的json添加到“资源”中,并根据需要调整参数。与@Trondh answer相比,它的优势在于它将作为资源组的一部分进行配置。当您切换回ASM时,您的经典存储帐户将被添加到无法移动的随机资源组中

           {
                "name": "[concat(parameters('BuildStorageName'), 'classic')]",
                "type": "Microsoft.ClassicStorage/storageAccounts",
                "location": "[parameters('BuildStorageLocation')]",
                "apiVersion": "2015-06-01",
                "dependsOn": [ ],
                "properties": {
                    "accountType": "[parameters('BuildStorageType')]"
                }
            }
    

    因为其他人可能会发现这对更高版本的Azure资源管理器(我的版本是1.0.4)很有帮助

    在最新版本的AzureRM for PSVersion 5.0.10514.6中,这可以通过powershell cmdlet完成

    假设你有:

    a) 已通过Azure RM验证:登录AzurerAccount

    b) 已创建资源组:新AzureRmResourceGroup-名称$resourceGroupName-位置“美国中南部”

    然后,您可以执行以下操作以获得经典存储帐户:


    新AzureRmResource-ResourceName”“-ResourceGroupName$ResourceGroupName-ResourceType“Microsoft.ClassicStorage/StorageAccounts”-位置“美国中南部”-Properties@{AccountType=“Standard_LRS”}-ApiVersion“2015-06-01”

    Jason的答案无疑是最好的解决方案

    $resourceGroupName= "myrsgroupp"
    $classicStorageName = "myclassicstoragename"
    $location = "North Europe"
    New-AzureRmResource -ResourceGroupName $resourceGroupName -ResourceName $classicStorageName -ResourceType "Microsoft.ClassicStorage/StorageAccounts" -Location $location -Properties @{AccountType="Standard_LRS"} -ApiVersion "2015-06-01" -Force
    

    我还需要跳过一个障碍:
    订阅未注册为使用名称空间“Microsoft.ClassicStorage”
    。通过以下方式修复:
    注册AzureRmResourceProvider-ProviderNamespace Microsoft.ClassicStorage