ASM hatte die Möglichkeit, das Standardabonnement mit dem Parameter -Default (und jetzt veraltet) zu ändern
Select-AzureSubscription -Default
aber die ARM Version
Select-AzureRMSubscription
hat den Parameter -Default nicht.
Wie kann ich das Standard-Abonnement ARM ändern? Es ist sehr ärgerlich, dass mein Standard ein Abonnement ist, das ich nie benutze.
Zur Klarstellung bearbeiten : Wenn ich das Standardabonnement ändern sage, meine ich das Standardabonnement, mit dem Sie bei jeder neuen PowerShell-Sitzung verbunden sind.
Schritt 1: Get-AzureRmSubscription
Es werden alle Ihre Abonnements aufgelistet.
Schritt 2: Select-AzureRmSubscription -SubscriptionId xxxxx-xxxxx-xxxxxx-xxxx
Die SubscriptionID finden Sie in der Ausgabe von Get-AzureRmSubscription. Sie können auch SubscriptionName verwenden.
Schritt 3: (Get-AzureRmContext). Subscription
Bestätigen Sie, dass Sie das richtige Abonnement ausgewählt haben.
Ich glaube nicht, dass es einen Weg gibt, aber für mich habe ich meinem powershell Profil folgendes hinzugefügt:
Login-AzureRmAccount -SubscriptionName "My Subscription"
Anpassen von PowerShell Profil
Entsprechend Ihrer Anforderung habe ich den folgenden Befehl getestet, um mein Abonnement auf meiner Seite zu ändern, und ich konnte das Abonnement ändern.
Get-AzureRmSubscription –SubscriptionName "your subscription" | Select-AzureRmSubscription
Hier ist mein Test, man könnte sich darauf beziehen.
Hinweis: Sie können den Befehl in diesem offiziellen document über Azure Resource Manager-Cmdlets finden.
Dies ist jetzt mit Azure PowerShell Version 5 behoben.
Enable-AzureRmContextAutosave
Wenn Sie diesen Befehl ausführen, wird für jede neue Azure PowerShell-Sitzung standardmäßig der letzte mit der Option festgelegte Kontext verwendet
Set-AzureRMContext
befehl
Zwei nicht behandelte Szenarien sind, wenn Sie bereits über ein PowerShell-Profil verfügen, das Sie bearbeiten möchten, und wenn Sie das PowerShell-Profil für PowerShell ISE ändern möchten.
Sie können Ihr Abonnement in ARM am einfachsten einrichten, indem Sie Ihr PowerShell-Profil als 4c74356b41 points verwenden.
Verwenden Sie $Profile | Format-List
, um den Pfad zu Ihren PowerShell-Profilen zu finden.
Das Windows PowerShell-Profil befindet sich normalerweise in ..\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Das PowerShell-ISE-Profil befindet sich normalerweise in ..\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
Bei fehlendem Code verwenden Sie New-Item -path $profile -type file –force
im ISE- oder PowerShell-Fenster, um eine leere Datei zu erstellen.
Wenn Sie alle PowerShell-Profildateien mit ihrem Pfad auflisten möchten, fügen Sie den -Force-Schalter $Profile | Format-List -Force
hinzu.
Wenn Sie ein Microsoft-Konto verwenden, z. B. [email protected], fügen Sie dies der .ps1-Datei Login-AzureRmAccount -TenantId "Tenant ID" -SubscriptionId "Subscription ID"
hinzu. Sie können mit Get-AzureRmSubscription | Format-List
eine Liste aller Abonnement- und Mandanten-IDs erhalten.
Sie können auch die Antwort von APowerShell verwenden. Ich möchte den Parameter Subscription Name nicht verwenden. Es ist nicht ungewöhnlich, dass sich der Subname ändert, wenn Sie mehrere Subs haben. Die SubID und die TenantID werden nicht geändert.
Wenn Sie sich mit einem Arbeitskonto wie "[email protected]" anmelden, können Sie die gesamte Anmeldung und die Abonnementauswahl mit einem solchen Eintrag automatisieren.
$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"
Wenn Sie nur den Parameter -SubscriptionId
verwenden, können Sie Anmeldefehler erhalten, wenn das Konto mehreren Azure-Abonnements hinzugefügt wurde. Daher ist es wichtig, auch -TenantId
zu verwenden.
Add-AzureRmAccount -Environment [If Needed] -Subscription "[Add Yours]" -ContextName "Default"
Ich habe die gleiche Herausforderung - es scheint kein Cmdlet im AzureRM
-Modul dafür zu geben [version 4.2.0]
:
Get-Command set-*subscription* -Module AzureRM
Abonnementobjekte, die von Get-AzureSubscription (Azure-Modul) zurückgegeben werden, unterscheiden sich offensichtlich von denen, die von GetAzureRmSubscription zurückgegeben werden - dh es gibt keine IsDefault -Eigenschaft auf den ARM-Objekten.
Nach der Denkweise von 4c74356b41
können Sie eine weniger "störende" Zeile in Ihr Profil einfügen:
$PSDefaultParameterValues["Login-AzureRmAccount:SubscriptionName"] = "my subscriptionName"