首页 > 解决方案 > 使用 power-shell 在 azure 中注册具有多个订阅的多个资源提供程序

问题描述

我是 PowerShell 脚本的新手,如果我在某个地方错了,请多多包涵。

我在 Azure 的一个租户下订阅了 100 个用于培训目的的订阅。我想使用 powershell 脚本向所有订阅中的所有资源提供者注册。每次我必须更改订阅,然后我可以触发注册 RP 的命令。我想循环这个场景,以便它应该从第一个 sub 开始并一直持续到最后一个 subscripton。我尝试将订阅名称作为 CSV 文件传递​​,但它在某处出错。我不明白哪里出了问题。

请找到我为它制作的脚本。建议将不胜感激

Connect-AzureRmAccount

$subscriptions = Import-csv -path "C:\subscriptions.csv"

Foreach ($subscription in $subscriptions) 
{
    Get-AzureRmResourceProvider -ListAvailable | where {$_.RegistrationState -eq "NotRegistered"} | Register-AzureRmResourceProvider
}

Write-Host "Subscription resource provider registration is completed"

标签: azurepowershellloopssubscriptionazure-powershell

解决方案


我将解决方案总结如下。

当您运行 PowerShell 脚本来注册资源提供者时,我们应该Select-AzureRmSubscription首先运行以选择我们现在使用的订阅。例如

我的测试 CSV 文件

在此处输入图像描述

脚本

Connect-AzureRmAccount

$subs=import-csv -Path 'D:\sub.csv'
foreach($sub in $subs){

  Select-AzureRmSubscription -Subscription $sub.SubscriptionName
   Get-AzureRmResourceProvider -ListAvailable | where {$_.RegistrationState -eq "NotRegistered"} | Register-AzureRmResourceProvider
}

在此处输入图像描述

此外,请注意,当我们运行脚本时,我们需要确保我们用于登录的帐户应该是 csv 文件中订阅的所有者。


推荐阅读