我一直在尝试创建一个PowerShell脚本来动态创建Azuer防火墙规则。
我使用的代码是:
$servername = "xxx"
$username = "xx@xxx.onmicrosoft.com"
$password = "xxx"
$subscription = "Pay-As-You-Go"
$secpasswd = ConvertTo-SecureString
$password -AsPlainText -Force $cred = New-Object System.Management.Automation.PSCredential ($userName, $secpasswd)
Login-AzureRmAccount -Credential $cred -SubscriptionName $subscription
Select-AzureSubscription -SubscriptionName $subscription -Default
$ipAddress = (Invoke-WebRequest 'http://myexternalip.com/raw').Content -replace "`n"
New-AzureSqlDatabaseServerFirewallRule -ServerName $servername -RuleName 'Test' -StartIpAddress $ipAddress -EndIpAddress $ipAddress
我也遇到以下错误:
Select-AzureSubscription:订阅名称Pay-As-You-Go不存在。
和
New-AzureSqlDatabaseServerFirewallRule:未指定默认订阅。使用Select-AzureSubscription -Default设置默认值 订阅。
我还尝试将Login-AzureRmAccount更改为Add-AzureAccount,但它没有任何区别。我创建的用户是SQL服务器的所有者。
还有什么我可能会遗失的吗?
答案 0 :(得分:1)
看起来您正在混合AzureRM和Azure模式......您需要确保可以从该模式访问所需的订阅。如果您使用Login-AzureRMAccount或Add-AzureRMAccount登录 - 请使用Get-AzureRMSubscription查看您有权访问的内容。
如果您使用Add-AzureAccount登录,请使用Get-AzureSubscription ...
检查并查看您找到的内容。