ASMには、-Default(および現在廃止予定)パラメータを使用してデフォルトのサブスクリプションを変更する機能がありました
Select-AzureSubscription -Default
ただし、ARMバージョン
Select-AzureRMSubscription
-Defaultパラメーターはありません。
デフォルトのARMサブスクリプションを変更するにはどうすればよいですか?私のデフォルトが私が決して使用しないサブスクリプションであることは非常に迷惑です。
説明のために編集:デフォルトサブスクリプションの変更と言うとき、新しいPowerShellセッションごとに接続しているデフォルトサブスクリプションを意味します。
ステップ1:Get-AzureRmSubscription
すべてのサブスクリプションがリストされます。
ステップ2:Select-AzureRmSubscription -SubscriptionId xxxxx-xxxxx-xxxxxx-xxxx
SubscriptionIDは、Get-AzureRmSubscriptionの出力で確認できます。 SubscriptionNameを使用することもできます。
ステップ3:(Get-AzureRmContext).Subscription
適切なサブスクリプションを選択したことを確認します。
私は方法があるとは思わないが、私のために私は私の powershell プロファイルに以下を追加した:
Login-AzureRmAccount -SubscriptionName "My Subscription"
PowerShellをカスタマイズする方法 profile
お客様の要件に応じて、次のコマンドをテストして、自分の側でサブスクリプションを変更し、サブスクリプションを変更することができました。
Get-AzureRmSubscription –SubscriptionName "your subscription" | Select-AzureRmSubscription
ここに私のテストがあります、あなたはそれを参照することができます。
注:この公式のコマンドは、Azure Resource Managerコマンドレットに関する document にあります。
これは、Azure PowerShellバージョン5で解決されました。
Enable-AzureRmContextAutosave
このコマンドを実行すると、新しいAzure PowerShellセッションはすべて、デフォルトで設定された最後のコンテキストにデフォルト設定されます
Set-AzureRMContext
コマンド
Add-AzureRmAccount -Environment [If Needed] -Subscription "[Add Yours]" -ContextName "Default"
カバーされない2つのシナリオは、編集するPowerShellプロファイルが既にある場合と、PowerShell ISEのPowerShellプロファイルを変更する場合です。
ARMでサブスクリプションを設定する最も簡単な方法は、PowerShellプロファイルを 4c74356b41 が示すように使用することです。
PowerShellプロファイルへのパスを見つけるには、$Profile | Format-List
を使用します。
通常、Windows PowerShellプロファイルは..\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1にあります。
PowerShell ISEプロファイルは通常..\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1にあります
どちらかが欠落している場合は、ISEまたはPowerShellウィンドウからNew-Item -path $profile -type file –force
を使用して空のファイルを作成します。
すべてのPowerShellプロファイルファイルとそのパスを一覧表示する場合は、-Forceスイッチ$Profile | Format-List -Force
を追加します。
[email protected]などのMicrosoftアカウントを使用している場合は、これを.ps1ファイルLogin-AzureRmAccount -TenantId "Tenant ID" -SubscriptionId "Subscription ID"
に追加します。 Get-AzureRmSubscription | Format-List
を使用して、すべてのサブスクリプションおよびテナントIDのリストを取得できます。
APowerShell の回答も使用できますが、Subscription Nameパラメーターは使用しない方がいいでしょう。サブ名が複数ある場合にサブ名が変わることは珍しくありません。SubIDとTenantIDは変わりません。
[email protected]のような仕事用アカウントを使用してログインしている場合は、次のようなものを使用して、ログインおよびサブスクリプションの選択全体を自動化できます。
$AzureAcct = "[email protected]"
$AzurePwd = ConvertTo-SecureString "P@s$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
も使用することが重要です。
私は同じ課題を抱えています-AzureRM
モジュールの[version 4.2.0]
にはコマンドレットがないようです:
Get-Command set-*subscription* -Module AzureRM
Get-AzureSubscription(Azureモジュール)によって返されるサブスクリプションオブジェクトは、GetAzureRmSubscriptionによって返されるものとは明らかに異なります。つまり、ARM-onesにはIsDefaultプロパティはありません。
4c74356b41
の考え方に従って、プロファイルに「邪魔にならない」行を追加できます。
$PSDefaultParameterValues["Login-AzureRmAccount:SubscriptionName"] = "my subscriptionName"