Die Prüfung und der Alltag der Administration verlangen vier Werkzeuge: das Portal, Cloud Shell, die Azure CLI und Azure PowerShell. Wer nur eines kann, erkennt in der Aufgabe oft nicht, dass ein anderes kürzer wäre. Diese Lektion richtet die Werkzeuge ein, zeigt die Anmeldung und die Formen der Ausgabe, und sie legt fest, womit der Rest des Kurses arbeitet.
Die Nordlicht Reisen GmbH steht hier für eine Aufgabe, die jede Administration kennt: „Zeigen Sie mir alle Ressourcengruppen der Buchung in Deutschland, und zwar bevor ich in die Besprechung gehe.“ Im Portal klicken Sie, in der Shell fragen Sie.
Vorwissen: Ausgabeformate, --query mit JMESPath, --output tsv in Skripten und die Prüfung von $LASTEXITCODE lehrt K3, Lektion 3.1.6, ausführlich. Hier steht davon nur, was die Werkzeugwahl und die Prüfung brauchen. Was ein Mandant und ein Abonnement sind, steht in „AZ-900 kompakt“, Lektion 2.2.
Die vier Werkzeuge
| Werkzeug | Stärke | Schwäche |
|---|---|---|
| Azure-Portal | etwas ansehen, erkunden, einmalige Handgriffe | nicht wiederholbar, nicht prüfbar |
| Cloud Shell | sofort eine angemeldete Shell im Browser, nichts zu installieren | Sitzung läuft ab, nur für interaktive Arbeit |
Azure CLI (az) |
kurze Befehle, plattformübergreifend, gut für Skripte | eigenes Programm: Fehler sind Exit-Codes |
Azure PowerShell (Az-Modul) |
Objekte statt Text, Pipeline, gut für Auswertung | Modul muss installiert und aktuell sein |
Als Faustregel für die Praxis: Das Portal zum Verstehen, die Befehle zum Wiederholen. Eine Handlung, die Sie ein zweites Mal brauchen, gehört in einen Befehl oder in eine Vorlage (Lektionen 3.1 und 3.2). Beide Befehlswerkzeuge erreichen dieselben Dienste von Azure Resource Manager; was eines kann, kann meist auch das andere.
Das Portal
Das Portal ist unter portal.azure.com erreichbar. Zur Orientierung genügen drei Dinge:
- Die Suche oben findet Dienste, Ressourcen und Dokumentation. Wer „Subscriptions“, „Resource groups“ oder „free services“ eintippt, kommt direkt dorthin.
- Die Kopfleiste enthält das Symbol für Cloud Shell. Ein Klick öffnet eine Shell unten im Browser.
- Jede Ressource hat eine Übersichtsseite und links ein Menü. Dort stehen Einstellungen, Zugriffssteuerung, Tags, Kostenanalyse und weitere Punkte, je nach Dienst.
Die Namen der Oberfläche schreibt dieser Kurs englisch, wie Microsoft sie in der Dokumentation nennt. Das Portal übersetzt seine Oberfläche je nach Spracheinstellung; suchen Sie bei einem deutschen Portal die deutsche Bezeichnung. Die Suche findet meist beides.
Prüfen Sie im Portal als Erstes, in welchem Verzeichnis Sie angemeldet sind und welche Abonnements Sie sehen. Ein häufiger Grund für „Meine Ressource ist weg“ ist ein anderes Verzeichnis oder ein Filter auf ein anderes Abonnement.
Cloud Shell
Azure Cloud Shell ist ein interaktives, angemeldetes Terminal im Browser. Sie wählen zwischen Bash und PowerShell. Erreichbar ist es über das Portal, über shell.azure.com, über die Dokumentation von CLI und PowerShell, über die mobile App von Azure und über die Azure-Account-Erweiterung von Visual Studio Code. Azure CLI und Azure PowerShell sind dort installiert, und Cloud Shell meldet Sie automatisch an: kein az login, kein Connect-AzAccount.
Was Sie über Sitzung und Speicher wissen müssen:
- Die Sitzung läuft nach 20 Minuten ohne Eingabe ab. Die Shell ist für interaktive Arbeit gedacht, nicht für lange, unbeaufsichtigte Läufe. Solche werden ohne Warnung beendet. Dass sie ein Allzweckrechner sei, ist ausdrücklich nicht gedacht: Dauerhafte starke Nutzung kann gegen die Nutzungsbedingungen verstoßen.
- Es gibt zwei Arten, sie zu starten. Beim ersten Start wählen Sie, ob Sie ein Speicherkonto einbinden. Mit Speicherkonto bleiben Ihre Dateien erhalten: Cloud Shell hängt eine Azure-Dateifreigabe als
clouddriveein und hält Ihr Home-Verzeichnis darin vor. Microsoft nennt dafür 5 GB. Ohne Speicherkonto (eine ephemeral session, die schnellste Variante) werden alle gespeicherten Dateien gelöscht, wenn die Sitzung endet. Für die ephemere Sitzung muss der Ressourcenanbieter Microsoft.CloudShell im Abonnement registriert sein; das geht im Portal unter Subscriptions, Abonnement wählen, Settings, Resource providers. - Das Hosting ist kostenlos, das Speicherkonto nicht. Die Maschine, auf der die Shell läuft, kostet nichts. Das eingebundene Speicherkonto kostet wie jedes Speicherkonto. Cloud Shell legt es mit einer eigenen Ressourcengruppe an.
- Das Löschen dieser Gruppe löscht Ihr Home-Verzeichnis. Wer Ressourcengruppe, Speicherkonto oder Dateifreigabe löscht, die Cloud Shell eingebunden hat, verliert das Home-Verzeichnis samt Dateien, und das lässt sich nicht rückgängig machen. Löschen Sie diese Gruppe nicht mit Ihren Übungsgruppen, sondern erst, wenn Sie Cloud Shell nicht mehr nutzen wollen.
- PowerShell in Cloud Shell hat das Laufwerk
Azure:. Es zeigt Ressourcen wie ein Dateisystem; Änderungen sehen Sie dort nachdir -Force. Dateien anlegen können Sie dort nicht. - Neustart und Einstellungen: In der Werkzeugleiste wechseln Sie zwischen Bash und PowerShell, starten die Shell neu und öffnen das Menü Settings, in dem Reset user settings die Einstellungen zurücksetzt und das eingebundene Speicherkonto löst. Die Dateifreigabe wird dabei nicht gelöscht.
Welche Shell nehmen? Für diesen Kurs gilt: Die Befehle der Lektionen sind meist Azure CLI und laufen in Bash und in PowerShell (nur die Anführungszeichen unterscheiden sich). Wo Bash gemeint ist, steht der Code in einem bash-Block; sonst ist es PowerShell.
Azure CLI einrichten und prüfen
Die Azure CLI läuft unter Windows, Linux und macOS. Unter Windows geht die Einrichtung mit WinGet:
winget install --exact --id Microsoft.AzureCLI
Danach müssen Sie jedes offene Terminalfenster schließen und neu öffnen. Zum Aktualisieren gibt es seit Version 2.11.0 den Befehl az upgrade; er aktualisiert standardmäßig auch alle installierten Erweiterungen. Den Stand halten Sie so fest:
az version
Die Ausgabe ist ein JSON-Objekt mit den Versionen der CLI (azure-cli, azure-cli-core, azure-cli-telemetry) und der installierten Erweiterungen (extensions). Die Nummern sind bei Ihnen andere als bei jemand anderem, und der Kurs nennt keine, außer dort, wo Microsoft eine als Anforderung nennt. Halten Sie sie für sich fest, damit Sie bei einem Fehler wissen, womit Sie gearbeitet haben. Erweiterungen (zum Beispiel für Resource Graph) installieren Sie bei Bedarf mit az extension add --name <Name>.
Azure PowerShell einrichten und prüfen
Azure PowerShell ist das Modul Az, ein Sammelmodul, das die allgemein verfügbaren Module herunterlädt. Microsoft empfiehlt dafür PowerShell 7 oder höher auf allen Plattformen. Installation und Prüfung:
$PSVersionTable.PSVersion
Install-Module -Name Az -Repository PSGallery -Force
Get-InstalledModule -Name Az
Die erste Zeile zeigt die Version Ihrer PowerShell. Die letzte gibt eine Zeile aus mit Version, Name, Repository und Beschreibung des Moduls; sie ist Ihr Nachweis, was installiert ist. In Cloud Shell und in den Docker-Images von Microsoft ist das Modul schon vorhanden. Die Befehle des Moduls finden Sie mit:
Get-Command -Module Az.Resources
Anmelden und das Abonnement wählen
Azure CLI. az login meldet Sie interaktiv an. Unter Windows nutzt die CLI seit Version 2.61.0 standardmäßig den Web Account Manager, unter Linux und macOS den Browser. Hat Ihr Konto mehrere Abonnements, fragt die CLI beim Anmelden nach dem Abonnement, das als Standard gelten soll. Kann kein Browser geöffnet werden, erzwingen Sie die Anmeldung mit Gerätecode:
az login
az login --use-device-code
az login --tenant <Mandant>
--tenant nimmt eine .onmicrosoft.com-Domäne oder die Kennung des Mandanten. In manchen Umgebungen müssen Sie dafür zuvor die Abonnementauswahl mit az config set core.login_experience_v2=off abschalten. Eine Anmeldung mit Benutzername und Kennwort auf der Kommandozeile funktioniert nicht mit Microsoft-Konten und nicht mit Konten, für die Multifaktor-Authentifizierung gilt. Seit September 2025 verlangt Microsoft die Multifaktor-Authentifizierung für die Azure CLI und weitere Befehlszeilenwerkzeuge für Benutzerkonten; Dienstprinzipale und verwaltete Identitäten sind davon ausgenommen. Die Meldung „interactive authentication is needed“ heißt: Für dieses Konto geht nur die interaktive Anmeldung.
Kein Kennwort auf die Kommandozeile. Die Prozessliste und der Verlauf der Shell speichern Eingaben (K3, Lektion 3.1.6). Für Übungen melden Sie sich immer interaktiv an.
Aktives Abonnement prüfen und wechseln:
az account list --query "[].{Name:name, Standard:isDefault, Zustand:state}" --output table
az account show --query "{Name:name, Zustand:state}" --output table
az account set --subscription "<Name oder ID>"
az logout
Die erste Zeile gibt eine Tabelle mit je einer Zeile je Abonnement aus. az account set bestimmt, gegen welches Abonnement die folgenden Befehle laufen. az logout meldet ab; az account clear leert zusätzlich den Zwischenspeicher der Abonnements, danach geht kein Befehl ohne neue Anmeldung. Einen Zugriffstoken zeigt az account get-access-token: Geben Sie ihn niemals aus und kopieren Sie ihn nirgends hin, er ist ein Schlüssel zu Ihrem Konto.
Azure PowerShell. Dieselben Schritte:
Connect-AzAccount
Get-AzSubscription
Set-AzContext -Subscription "<Name oder ID>"
Get-AzContext
Disconnect-AzAccount
Mit Connect-AzAccount -UseDeviceAuthentication erzwingen Sie den Gerätecode, mit -Tenant und -Subscription wählen Sie Mandant und Abonnement. Seit Modul-Version 12.0.0 fragt auch PowerShell bei mehreren Abonnements nach; mit Update-AzConfig -DefaultSubscriptionForLogin '<Name oder ID>' legen Sie ein Standardabonnement fest. Der Kontext (Get-AzContext) fasst Konto, Abonnement, Mandant und Umgebung zusammen. Set-AzContext ändert ihn für die laufende Sitzung. In Cloud Shell ist die Anmeldung schon erledigt; az account set und Set-AzContext brauchen Sie auch dort, wenn Sie mehrere Abonnements haben. Ihr gewähltes Abonnement merkt Cloud Shell sich für künftige Sitzungen.
Ausgabe formen: CLI
Jeder CLI-Befehl kennt --output (-o) und --query. Eine Kurzfassung des Prüfungsstoffs; die Tiefe steht in K3, Lektion 3.1.6:
--output |
Nutzen |
|---|---|
json |
Standard, vollständig, für Programme |
table |
lesbare Tabelle (nur ausgewählte Felder) |
tsv |
Werte ohne Anführungszeichen, für Skripte |
yaml, yamlc |
YAML ohne und mit Farbe |
jsonc |
JSON mit Farbe |
none |
keine Ausgabe, nur der Exit-Code |
--query nimmt einen JMESPath-Ausdruck, der auf die Antwort angewendet wird, bevor sie erscheint. Drei Bausteine genügen für den Anfang:
az group list --query "[].name" --output tsv
az group list --query "[?location=='germanywestcentral'].{Name:name, Ort:location}" --output table
az group list --query "[] | length(@)" --output tsv
Die erste Zeile gibt die Namen aller Gruppen aus, eine je Zeile. Die zweite filtert mit [?Bedingung] auf die Region und benennt die Spalten mit {Name:Ausdruck}. Die dritte zählt die Gruppen. Unter Windows braucht ein Ausdruck mit runden Klammern ein Leerzeichen, deshalb steht [] | davor (Begründung in K3, Lektion 3.1.6). Wer mit den Anführungszeichen kämpft, holt das JSON und filtert in PowerShell.
Schlägt ein CLI-Befehl fehl, endet er mit einem Exit-Code ungleich 0, aber PowerShell läuft weiter. In Skripten prüfen Sie $LASTEXITCODE nach jedem az-Aufruf. Bei einem einzelnen Aufruf im Terminal sehen Sie die Fehlermeldung ohnehin.
Ausgabe formen: Azure PowerShell
Azure PowerShell liefert Objekte statt Text. Statt einer Abfragesprache nehmen Sie die Cmdlets, die Sie von PowerShell kennen:
Get-AzResourceGroup |
Where-Object Location -eq 'germanywestcentral' |
Select-Object ResourceGroupName, Location |
Format-Table
(Get-AzResourceGroup).Count
Get-AzResourceGroup | ConvertTo-Json -Depth 3
Where-Object filtert, Select-Object wählt Eigenschaften, Format-Table bestimmt die Darstellung, ConvertTo-Json macht JSON daraus. Das Ergebnis des ersten Befehls entspricht der zweiten CLI-Zeile: eine Tabelle mit Name und Region je Gruppe. Merken Sie sich die Unterschiede in den Namen: Die CLI nennt das Feld name, PowerShell ResourceGroupName.
Hilfe gibt es in beiden: az group create --help und Get-Help New-AzResourceGroup. Für die Prüfung gilt: Sie müssen nicht jeden Parameter auswendig kennen, aber Sie müssen erkennen, was ein Befehl tut, und den fehlenden Teil einer Zeile ergänzen können.
Kosten und Aufräumen
- Was nach Zeit kostet: Die Übungen dieser Lektion legen nur eine leere Ressourcengruppe an. Cloud Shell mit eingebundenem Speicherkonto kostet wie jedes Speicherkonto; eine ephemere Sitzung braucht keins.
- Aufräumen:
az group delete --name rg-az104-werkzeuge --yes --no-wait, danachaz group wait --name rg-az104-werkzeuge --deletedundaz group exists --name rg-az104-werkzeuge(mussfalseausgeben). In PowerShell:Remove-AzResourceGroup -Name rg-az104-werkzeuge -Force. - Was nicht mit der Gruppe verschwindet: Ihre Cloud-Shell-Ressourcen. Cloud Shell legt Speicherkonto und Dateifreigabe in eigenen Gruppen an; das Löschen der Übungsgruppe berührt sie nicht, und das ist gewollt. Löschen Sie sie nur, wenn Sie Cloud Shell nicht mehr nutzen, und denken Sie daran, dass dabei Ihr Home-Verzeichnis dort verloren geht.
Typische Fehler
azist nicht bekannt. Nach der Installation haben Sie das Terminal nicht neu geöffnet. Schließen Sie alle Fenster und öffnen Sie eines neu.- Anmeldung bricht mit „interactive authentication is needed“ ab. Sie haben Benutzername und Kennwort auf der Kommandozeile angegeben, aber für das Konto gilt Multifaktor-Authentifizierung. Melden Sie sich mit
az loginohne Kennwort an. - Die Ausgabe zeigt Ressourcen eines anderen Abonnements. Prüfen Sie mit
az account showoderGet-AzContext, welches aktiv ist, und setzen Sie es mitaz account setoderSet-AzContext. - Cloud Shell: Dateien sind weg. Sie haben ohne Speicherkonto gearbeitet oder die Sitzung wurde nach Inaktivität zurückgesetzt. Nur
clouddrivebleibt.
Übung 1: Anmelden, wählen, anlegen, auswerten, löschen
- Melden Sie sich mit der Azure CLI an und zeigen Sie Ihre Abonnemente als Tabelle.
- Wählen Sie das Abonnement für den Kurs und prüfen Sie es mit
az account show. - Legen Sie die Ressourcengruppe
rg-az104-werkzeugein Ihrer Region an, mit den Tagskurs=az104undquelle=cli. - Melden Sie sich in Azure PowerShell an und legen Sie dort die Gruppe
rg-az104-werkzeuge-psmit dem Tagquelle=powershellan. - Listen Sie alle Gruppen mit
azals Tabelle (Name, Region, Tags) und mit PowerShell als Tabelle (Name, Region). - Räumen Sie auf.
So prüfen Sie es: Beide Listen zeigen beide Gruppen. Nach dem Aufräumen gibt az group exists für beide Namen false aus.
Lösung 1
az login
az account list --query "[].{Name:name, Standard:isDefault}" --output table
az account set --subscription "<Name oder ID>"
az account show --query "{Name:name, Zustand:state}" --output table
az group create --name rg-az104-werkzeuge --location germanywestcentral --tags kurs=az104 quelle=cli
Connect-AzAccount
New-AzResourceGroup -Name rg-az104-werkzeuge-ps -Location germanywestcentral -Tag @{ quelle = 'powershell' }
az group list --query "[?starts_with(name, 'rg-az104-werkzeuge')].{Name:name, Ort:location, Tags:tags}" --output table
Get-AzResourceGroup | Where-Object ResourceGroupName -like 'rg-az104-werkzeuge*' | Select-Object ResourceGroupName, Location | Format-Table
Beide Auswertungen geben eine Tabelle mit zwei Zeilen aus. Bei der CLI zeigt die Spalte Tags die Tags der jeweiligen Gruppe; die Darstellung der Tags in der Tabelle kann je nach CLI-Version abweichen, notfalls nehmen Sie --output json. Get-AzResourceGroup zeigt die Spalten ResourceGroupName und Location.
Aufräumen und Probe:
az group delete --name rg-az104-werkzeuge --yes --no-wait
Remove-AzResourceGroup -Name rg-az104-werkzeuge-ps -Force
az group wait --name rg-az104-werkzeuge --deleted
az group exists --name rg-az104-werkzeuge
az group exists --name rg-az104-werkzeuge-ps
Die letzten beiden Befehle geben je false aus. Remove-AzResourceGroup wartet, bis die Gruppe weg ist.
Übung 2: Cloud Shell
- Öffnen Sie Cloud Shell im Portal und wählen Sie PowerShell. Starten Sie ohne Speicherkonto, wenn Sie keines einbinden wollen.
- Prüfen Sie dort Ihr Abonnement mit
Get-AzContextundaz account show. - Wechseln Sie zu Bash und fragen Sie dort
az group list --output tableab. - Legen Sie eine Datei an (
echo test > probe.txt), beenden Sie die Sitzung, starten Sie neu und prüfen Sie, ob die Datei noch da ist.
So prüfen Sie es: In beiden Shells sind Sie ohne Anmeldung angemeldet und sehen dieselben Gruppen. Ob die Datei erhalten bleibt, hängt davon ab, ob Sie ein Speicherkonto eingebunden haben (clouddrive) oder nicht.
Lösung 2
Cloud Shell hat Azure CLI und Azure PowerShell vorinstalliert und Sie schon angemeldet, deshalb funktionieren az account show und Get-AzContext ohne Anmeldung. Beide zeigen dasselbe Abonnement. az group list --output table in Bash gibt dieselben Gruppen aus wie in PowerShell, nur in der Darstellung der CLI.
Zur Datei: Ohne Speicherkonto (ephemere Sitzung) wird sie beim Ende der Sitzung gelöscht; mit Speicherkonto bleibt sie im Home-Verzeichnis erhalten, das in einem Abbild in der Dateifreigabe liegt. Außerhalb des Home-Verzeichnisses bleibt nichts. Wer die Shell nur zum Ausprobieren nutzt, braucht kein Speicherkonto und hat damit auch keine Reste zum Aufräumen.
Was Sie jetzt können
- Sie wählen das passende Werkzeug für eine Aufgabe.
- Sie richten Azure CLI und
Az-Modul ein und halten ihren Stand fest. - Sie melden sich mit
az loginundConnect-AzAccountan, prüfen das aktive Abonnement und wechseln es. - Sie starten Cloud Shell und wissen, was bleibt und was nicht.
- Sie formen Ausgaben mit
--outputund--queryund mitWhere-ObjectundSelect-Object.
Weiterlesen
- What is Azure Cloud Shell? und Features & tools for Azure Cloud Shell
- Azure Cloud Shell ephemeral sessions und Persist files in Azure Cloud Shell
- How to install the Azure CLI
- Sign into Azure interactively using the Azure CLI
- How to install Azure PowerShell und Sign in to Azure PowerShell interactively
- Format output for Azure CLI commands und Query Azure CLI command output with JMESPath