使用Powershell为PAAS服务器添加具有IP地址的防火墙规则

时间:2019-03-21 17:45:19

标签: sql azure

我有Azure环境,必须为所有订阅将防火墙规则添加到所有Pass服务器中。 所有订阅的服务器名称和资源组均不同。 例如:Enterprise \ dev订阅。

Server              RESOURCE GROUP           SUBSCRIPTION
caddvsql11           DwDvRg01                Enterprise Dev/Test
caduasql11           DwUtRg01                Enterprise Dev/Test
cmspcsql01          CmsPcRg01                Enterprise Dev/Test
quomosql11          QuoMoRg11                Enterprise Dev/Test



Set-AzureRmContext  "Enterprise\dev " 

new-AzureRmSqlServerFirewallRule -ResourceGroupName "DwDvRg01" -ServerName "caddvsql11" -FirewallRuleName "SAM_HOME" -StartIpAddress "22.7.180.91"
-EndIpAddress "22.7.180.91"

我可以使用此查询为单个服务器添加IP地址,但是我需要在Azure和所有具有不同服务器和资源组的Paas服务器中添加此防火墙规则名称和IP地址。 有人可以帮我吗。

2 个答案:

答案 0 :(得分:0)

Set-AzureRmContext是较旧的版本。 Cloud Shell已迁移到新的Az cmdlet。

如果所有资源组都在相同的Subscription ID下,则可以扩展您使用的脚本,以在其余三台服务器上包括防火墙规则。

如果它们全部属于单个订阅,则需要包括cmdlet(Connect-AzAccount),然后使用Set-AzContext cmdlet在订阅之间进行切换。

如果通过Azure门户通过Cloud Shell会话进行连接,则可以使用Set-AzContext在订阅之间进行切换。如果您是从桌面环境运行的,并且需要首先进行身份验证,则需要Connect-AzAccount cmdlet。

答案 1 :(得分:0)

您可以使用所有必需的输入创建一个简单的csv文件,然后使用Import-csv命令。

这是一个简单的csv和脚本示例。您可以添加所需的任何其他列,并在适当的命令中使用这些值。

enter image description here

foreach($rule in import-csv "E:\firewallrules.csv") 
{ 
   Write-Host "Processing item with.. Server="$rule.Server "Resource Group ="$rule.ResourceGroup "Subscription="$rule.Subscription

   # Make use of variables like $rule.Server and so on in your commands here..
}