Получение ошибки при вызове скрипта Powershell Get-AzureRmSqlServerFirewallRules?

#powershell #azure-cli #powershell-ise

Вопрос:

Я вызываю следующий сценарий

 az login -u <USERNAME> -p <PWD> 
az account set --subscription Sub2
$sourceResourceGroup='Source-Networking'
$sourceSqlServerName='SourceSQLServer'
$sourceFirewallRules = Get-AzureRmSqlServerFirewallRule -ResourceGroupName 
  $sourceResourceGroup -ServerName $sourceSqlServerName
 

Группа ресурсов «Источник-Сеть» находится в подписке Sub2, но я получаю сообщение об ошибке, что не удалось найти группу ресурсов «Источник-сеть».
Я использую Windows Powershell ISE в качестве администратора для запуска команды.
Кажется, это работает, если я использую облачную оболочку Azure Онлайн на сайте Microsoft, где написано «попробуйте».

Что может быть не так в окне ISE PowerShell ?

Комментарии:

1. Убедитесь, что <ИМЯ ПОЛЬЗОВАТЕЛЯ> и <ИМЯ ПОЛЬЗОВАТЕЛЯ><PWD>, используемые в сценарии, имеют по крайней мере разрешения на чтение в RG. Также убедитесь, что название RG правильное (включая корпус).

2. Я все это проверил, и все в порядке. Мне было интересно, нужно ли мне избегать » — » в имени группы ресурсов, так как это может вызвать проблему в powerselll ?

Ответ №1:

В приведенном выше общем сценарии похоже, что вы пытаетесь запустить сценарий с комбинацией обоих модулей AzureCLI и AzureRM, в которых эти сценарии завершатся неудачей в окне ISE PowerShell.

  • Вы можете обратиться к приведенному ниже сценарию, если хотите получить правило брандмауэра Sql server с помощью AzureCLI
 az login 
az account set --subscription '<<subscriptionId>>'
GroupName='resource-group-name'
ServerName='sql-server-name'
az sql server firewall-rule show --name firewall --resource-group $GroupName --server $ServerName
 
  • Вы можете обратиться к приведенному ниже сценарию, если хотите получить
    правило брандмауэра Sql server с помощью модуля ISE PowerShell и AzureRM
 Connect-AzureRmAccount
Set-AzureRmContext -Subscription '<<subscriptionId>>'
$groupname = 'resource-group-name'
$serverName = 'sql-server-name'
$firewallrule = Get-AzureRmSqlServerFirewallRule -ResourceGroupName $group -ServerName $servername