it-swarm.com.ru

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

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

Select-AzureSubscription -Default

но версия ARM 

Select-AzureRMSubscription 

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

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

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

26
Mikee

Шаг 1: Get-AzureRmSubscription  

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

Шаг 2: Выберите-AzureRmSubscription -SubscriptionId xxxxx-xxxxx-xxxxxx-xxxx  

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

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

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

26
Clavin Fernandes

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

Login-AzureRmAccount -SubscriptionName "My Subscription"

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

13
4c74356b41

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

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

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

Примечание: Команду Azure Resource Manager можно найти в этом официальном документе о командлетах Azure Resource Manager.

6
Bruce Chen

Теперь это решено в Azure PowerShell версии 5.

Enable-AzureRmContextAutosave

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

Set-AzureRMContext 

команда

4
Mark Arnott

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

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

Чтобы найти путь к своим профилям PowerShell, используйте $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.

Если вы используете учетную запись Microsoft, например [email protected], добавьте ее в файл .ps1 Login-AzureRmAccount -TenantId "Tenant ID" -SubscriptionId "Subscription ID". Вы можете получить список всех подписок и идентификаторов арендаторов, используя 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.

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

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

Get-Command set-*subscription* -Module AzureRM

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

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

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