PowerShell-Module für Azure installieren, Verbindung herstellen


    Tags: ,

    PowerShell für AzureAuch bei der Automa­tisierung von Micro­softs Cloud-Diensten spielt Power­Shell eine zen­trale Rolle. Diesem Zweck dienen 2 Module mit ins­ge­samt ca. 3000 Cmdlets. Eines ist für das Mana­gement von Azure AD vorge­sehen, das andere für diverse Cloud-Ressourcen. Parallel dazu gibt es noch die je­weiligen Vor­gänger­module.

    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 weit­gehend 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 Unter­stü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 Unter­schiede 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 admini­strativen 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.

    Die Installation des Az-Moduls kann ein Update des NuGet-Providers erfordern.

    Möglicher­weise 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.

    Anzeigen der Submodule von Az mit Get-Module

    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.

    Connect-AzAccount öffnet standardmäßig einen Dialog zur Eingabe der Anmeldedaten.

    Azure AD PowerShell for Graph

    Das neue Modul für Azure Active Directory stellt geringe System­anfor­derungen als Az und läuft ab Windows 7 mit den im Betriebs­system 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

    AzureAD-Modul über PowerShellGet installieren

    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.

    Interaktiver Logon über Connect-AzureAD

    Ein Login ist auch dann erforderlich, wenn man sich in der gleichen Sitzung bereits über Connect-AzAccount angemeldet hat.

    Cmdlets des Modules AzureAD ausgeben mit Get-Command

    Im Gegensatz zu Az besteht AzureAD nur aus einem Modul mit aktuell 180 Cmdlets.

    Keine Kommentare