Tags: PowerShell, Azure
Auch bei der Automatisierung von Microsofts Cloud-Diensten spielt PowerShell eine zentrale Rolle. Diesem Zweck dienen 2 Module mit insgesamt ca. 3000 Cmdlets. Eines ist für das Management von Azure AD vorgesehen, das andere für diverse Cloud-Ressourcen. Parallel dazu gibt es noch die jeweiligen Vorgängermodule.
PowerShell empfiehlt sich nicht nur für die Entwicklung von Scripts, um komplexere Aufgaben in der Cloud-Umgebung zu automatisieren. Es eignet sich beim Einsatz als interaktive Shell auch weitgehend als Alternative zum Web-Portal, um etwa die Konfiguration von Diensten anzupassen.
Neue Generation von PowerShell-Modulen
PowerShell-Support bietet Azure schon lange. Allerdings hat sich Microsoft entschieden, die ursprünglichen Module nicht mehr weiter zu entwickeln, sondern durch neue zu ersetzen. Ein Anlass dafür war die geplante Unterstützung für PowerShell Core, so dass sich Azure nun auch von Linux aus verwalten lässt.
Das Modul für Azure Ressource Manager (AzureRM) weicht dem Az-Modul, und Azure Active Directory PowerShell for Graph folgt dem Modul Azure Active Directory (MSOnline) nach.
Aktuell sind die beiden älteren Module noch verfügbar, aber im Fall von AzureRM empfiehlt Microsoft, auf das neuere Az zu migrieren. AzureRM erhält keine neuen Features mehr und sein Support läuft mit Ende 2020 aus. Wer es dennoch installieren möchte, findet dafür eine Anleitung auf Microsoft Docs.
Eine Sammlung von Aliases soll den Umstieg erleichtern, indem sich die neuen Cmdlets unter dem Namen ihrer alten Pendants ansprechen lassen. Dennoch dürften viele bestehende Scripts einige Anpassungen erfordern, weil sich die Unterschiede zwischen den Modulen nicht bloß auf die Namen der Cmdlets beschränken.
Im Fall von MSOnline gibt es noch kein verbindliches Datum für das Support-Ende, aber Microsoft legt Anwendern auch hier nahe, auf das aktuelle Modul umzusteigen. Dies gilt vor allem für die Entwicklung neuer Scripts.
Az-Modul installieren und aktualisieren
Das Az-Modul setzt mindestens Windows PowerShell 5.1 oder PowerShell Core 6.x voraus. Es lässt sich zudem nicht parallel zum AzureRM-Modul installieren. Benötigt man beide, dann kann man das ältere unter Windows PowerShell betreiben und Az unter der Core-Version.
Microsoft bietet für die Installation zwei Varianten an, entweder über PowerShellGet oder als MSI. Letzteres eignet sich aber nur für Windows PowerShell und kann von Github heruntergeladen werden.
Die Standardmethode ist somit jene über NuGet. Empfohlen wird ein Hinzufügen nur für den aktuellen Benutzer, und dafür ist eine Session mit administrativen Rechten nicht erforderlich. Zu diesem Zweck gibt man den Befehl
Install-Module -Name Az -AllowClobber -Scope CurrentUser
ein. Möchte man eine Installation für alle Benutzer auf diesem Rechner, dann ersetzt man in einer Sitzung mit erhöhten Rechten beim Parameter Scope CurrentUser durch AllUsers.
Möglicherweise benötigt Windows ein Update des NuGet-Providers, dessen Installation man bestätigen muss. Zudem muss man sich mit dem Download des Moduls von der PSGallery einverstanden erklären, die als unsicheres Repository eingestuft wird.
Nachdem relativ häufig neue Versionen von Az erscheinen, wird man immer wieder ein Update einspielen wollen. Dies erfolgt über
Update-Module Az
Wie man nach der Installation mit
Get-Module -Name Az.* -ListAvailable
feststellen kann, enthält Az eine ganze Reihe von Submodulen für die jeweiligen Cloud-Dienste.
In Az.Accounts finden sich die Cmdlets für das Management von Konten und Abos, darunter auch jenes für die Anmeldung an Azure:
Connect-AzAccount
Dieses öffnet ohne weitere Parameter den grafischen Login-Dialog, wie man ihn von der Anmeldung an Microsoft-Konten kennt. Eine Unterstützung für die Zwei-Faktor-Authentifizierung ist damit auch gegeben.
Azure AD PowerShell for Graph
Das neue Modul für Azure Active Directory stellt geringere Systemanforderungen als Az und läuft ab Windows 7 mit den im Betriebssystem mitgelieferten Ausführungen von PowerShell. Dafür handelt es sich aber bei AzureAD um keine Multiplattfom-Ausführung, ist also unter Linux oder macOS nicht verfügbar.
Die Installation erfolgt ausschließlich über PowerShellGet:
Install-Module AzureAD
Anschließend meldet man sich so am AAD an:
Connect-AzureAD
Auch dieses Cmdlet öffnet den Dialog für die interaktive Anmeldung, sofern man nicht den Parameter Credential mit einem Credential-Objekt angibt.
Ein Login ist auch dann erforderlich, wenn man sich in der gleichen Sitzung bereits über Connect-AzAccount angemeldet hat.
Im Gegensatz zu Az besteht AzureAD nur aus einem Modul mit aktuell 180 Cmdlets.
Täglich Know-how für IT-Pros mit unserem Newsletter
Ähnliche Beiträge
- Verfügbare Azure-VMs in einer Region mit PowerShell anzeigen
- Gruppen in Azure Active Directory mit PowerShell verwalten
- Windows Update for Business via Deployment Service und PowerShell steuern
- Virtuelle Maschinen in Azure erstellen und verwalten mit PowerShell
- Microsoft Azure Stack mit der Azure Public Cloud verknüpfen
Weitere Links