Как изменить подписку по умолчанию Azure RM

ASM имела возможность изменить подписку по умолчанию с параметром -Default (и теперь устаревшим)

Select-AzureSubscription -Default

но версия ARM

Select-AzureRMSubscription 

не имеет параметра -Default.

Как изменить стандартную ARM-подписку? Очень досадно, что мой дефолт - это подписка, которую я никогда не использую.

Изменить для пояснения: когда я говорю об изменении по умолчанию, я имею в виду подписку по умолчанию, с которой вы подключены, с каждым новым сеансом PowerShell.

Ответ 1

Шаг 1: Get-AzureRmSubscription

Он перечислит все ваши подписки.

Шаг 2: Select-AzureRmSubscription -SubscriptionId xxxxx-xxxxx-xxxxxx-xxxx

Идентификатор SubscriptionID можно найти в выводе Get-AzureRmSubscription. Вы также можете использовать SubscriptionName.

Шаг 3: (Get-AzureRmContext). Подписка

Убедитесь, что вы выбрали правильную подписку.

Ответ 2

Я не думаю, что есть способ, но для меня я добавил в свой профиль следующее:

Login-AzureRmAccount -SubscriptionName "My Subscription"

Как настроить профиль PowerShell

Ответ 3

Согласно вашему требованию, я проверил следующую команду, чтобы изменить мою подписку на моей стороне, и я мог бы изменить подписку.

Get-AzureRmSubscription –SubscriptionName "your subscription" | Select-AzureRmSubscription

Вот мой тест, вы можете сослаться на него.

Примечание. В этом официальном документе вы можете найти команду о командах диспетчера ресурсов Azure.

Ответ 4

Теперь это разрешено с помощью Azure PowerShell версии 5.

Enable-AzureRmContextAutosave

После запуска этой команды каждый новый сеанс Azure PowerShell по умолчанию будет устанавливать последний контекст, заданный с помощью

Set-AzureRMContext 

команда

Ответ 5

Два сценария, которые не рассматриваются, - это если у вас уже есть профиль PowerShell, который вы хотите изменить, и если вы хотите изменить профиль PowerShell для PowerShell ISE.

Самый простой способ установить подписку в ARM - использовать профиль PowerShell, как указано в 4c74356b41.

Чтобы найти путь к вашим профилям PowerShell, используйте $Profile | Format-List $Profile | Format-List.

Профиль Windows PowerShell обычно находится в папке \Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Профиль PowerShell ISE обычно находится в папке \Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1.

Если они отсутствуют, используйте New-Item -path $profile -type file –force из окна ISE или PowerShell для создания пустого файла.

Если вы хотите перечислить все файлы профиля PowerShell со своим путем, добавьте переключатель -Force $Profile | Format-List -Force $Profile | Format-List -Force.

Если вы используете учетную запись Microsoft, например [email protected], добавьте ее в файл.ps1 Login-AzureRmAccount -TenantId "Tenant ID" -SubscriptionId "Subscription ID". Вы можете получить список всех Get-AzureRmSubscription | Format-List и идентификаторов арендаторов с помощью Get-AzureRmSubscription | Format-List Get-AzureRmSubscription | Format-List.

Вы также можете использовать ответ APowerShell, я предпочитаю не использовать параметр "Название подписки". Это не редкость для того, чтобы подзадача изменилась, когда у вас есть несколько подсайтов, SubID и TenantID не изменятся.

Если вы регистрируетесь в учетной записи работы, например [email protected], вы можете автоматизировать весь выбор входа и подписки, используя что-то вроде этого.

$AzureAcct = "[email protected]"
$AzurePwd = ConvertTo-SecureString "[email protected]$w0rd" -AsPlainText -Force
$AzureCreds = New-Object System.Management.Automation.PSCredential($AzureAcct, $AzurePwd)

$Login-AzureRmAccount -Credential $AzureCreds -TenantId "Tenant ID" -SubscriptionId "Subscription ID"

Если вы используете только параметр -SubscriptionId вы можете получить ошибки входа, если учетная запись была добавлена к нескольким подпискам Azure, поэтому важно также использовать -TenantId.

Ответ 6

Add-AzureRmAccount -Environment [If Needed] -Subscription "[Add Yours]" -ContextName "Default"

Ответ 7

У меня такая же проблема - для модуля AzureRM для него нет никакого AzureRM [version 4.2.0]:

Get-Command set-*subscription* -Module AzureRM

Объекты подписки, возвращаемые Get-AzureSubscription (модуль Azure), явно отличаются от объектов, возвращаемых GetAzureRmSubscription, т.е. Не существует свойства IsDefault для ARM-единиц.

Следуя мышлению 4c74356b41 вы можете добавить менее "тревожную" строку в своем профиле:

$PSDefaultParameterValues["Login-AzureRmAccount:SubscriptionName"] = "my subscriptionName"

Ответ 8

Вы будете использовать контекст, подобный этому Set-AzureRmContext -SubscriptionName для каждой сессии