Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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为MySQL服务器的Azure数据库添加防火墙规则_Mysql_Powershell_Azure_Firewall - Fatal编程技术网

从powershell为MySQL服务器的Azure数据库添加防火墙规则

从powershell为MySQL服务器的Azure数据库添加防火墙规则,mysql,powershell,azure,firewall,Mysql,Powershell,Azure,Firewall,我已经为MySQL服务器部署了Azure数据库,我想向其中添加防火墙规则。我需要从PowerShell执行此操作,因为此步骤是更大解决方案的一部分。我尝试了以下代码: $resource = Get-AzureRmResource -ResourceGroupName $ResourceGroup.Variables.ResourceGroup ` -ResourceType "Microsoft.DBforMySQL/server

我已经为MySQL服务器部署了Azure数据库,我想向其中添加防火墙规则。我需要从PowerShell执行此操作,因为此步骤是更大解决方案的一部分。我尝试了以下代码:

$resource = Get-AzureRmResource -ResourceGroupName $ResourceGroup.Variables.ResourceGroup `
                                -ResourceType "Microsoft.DBforMySQL/servers" -ResourceName $MySQLServer.ResourceName
$props = $resource.Properties
$props | Add-Member @{ipV4FirewallSettings = [ordered] @{ "firewallRules" = @() } }
$props.ipV4FirewallSettings.firewallRules = $MySQLServer.FirewallRules
$props | Add-Member @{administratorLoginPassword = "Qwerty123!" }
Set-AzureRmResource -PropertyObject $props -ResourceGroupName $ResourceGroup.Variables.ResourceGroup `
                    -ResourceType "Microsoft.DBforMySQL/servers" -ResourceName $MySQLServer.ResourceName  -Force
其中
$MySQLServer.FirewallRules
来自json文件,格式如下:

"FirewallRules" : [
  { "firewallRuleName" : "test", "rangeStart": "0.0.0.0", "rangeEnd": "0.0.0.0" },
  { "firewallRuleName" : "test2", "rangeStart": "0.0.0.1", "rangeEnd": "255.255.255.255" }
],
此代码不会引发任何错误,但不会向资源添加规则。

我需要一个指向我犯错误的地方的指针或一些文档,以及如何正确处理此类任务。

您可以使用
New AzureRmResource
命令添加Mysql防火墙规则:

PS C:\Users\jason> $b = New-Object Psobject -Property @{startIpAddress="172.0.0.1" ; endIpAddress="172.0.0.8"}
PS C:\Users\jason> $b

startIpAddress endIpAddress
-------------- ------------
172.0.0.1      172.0.0.8


PS C:\Users\jason> New-AzureRmResource -ResourceId "/subscriptions/b83c1ed3-xxxx-xxxx-xxxx-2b83a074c23f/resourceGroups/jasonmysql/providers/Microsoft.DBforMySQL/servers/jasonmysql/firewallRules/rule2" -Properties $b -ApiVer
sion 2017-04-30-preview -Force

Name              : rule2
ResourceId        : /subscriptions/b83c1ed3-xxxx-xxxx-xxxx-2b83a074c23f/resourceGroups/jasonmysql/providers/Microsoft.DBforMySQL/servers/jasonmysql/firewallRules/rule2
ResourceName      : jasonmysql/rule2
ResourceType      : Microsoft.DBforMySQL/servers/firewallRules
ResourceGroupName : jasonmysql
SubscriptionId    : b83c1ed3-xxxx-xxxx-xxxx-2b83a074c23f
Properties        : @{startIpAddress=172.0.0.1; endIpAddress=172.0.0.8}

您可以使用
newazurermresource
命令添加Mysql防火墙规则:

PS C:\Users\jason> $b = New-Object Psobject -Property @{startIpAddress="172.0.0.1" ; endIpAddress="172.0.0.8"}
PS C:\Users\jason> $b

startIpAddress endIpAddress
-------------- ------------
172.0.0.1      172.0.0.8


PS C:\Users\jason> New-AzureRmResource -ResourceId "/subscriptions/b83c1ed3-xxxx-xxxx-xxxx-2b83a074c23f/resourceGroups/jasonmysql/providers/Microsoft.DBforMySQL/servers/jasonmysql/firewallRules/rule2" -Properties $b -ApiVer
sion 2017-04-30-preview -Force

Name              : rule2
ResourceId        : /subscriptions/b83c1ed3-xxxx-xxxx-xxxx-2b83a074c23f/resourceGroups/jasonmysql/providers/Microsoft.DBforMySQL/servers/jasonmysql/firewallRules/rule2
ResourceName      : jasonmysql/rule2
ResourceType      : Microsoft.DBforMySQL/servers/firewallRules
ResourceGroupName : jasonmysql
SubscriptionId    : b83c1ed3-xxxx-xxxx-xxxx-2b83a074c23f
Properties        : @{startIpAddress=172.0.0.1; endIpAddress=172.0.0.8}