Use Azure Automation for Exchange Online PowerShell Script - Part 1
Hallo zusammen,
Stellt euch mal folgendes Szenario vor:
Ein Kunde hat einen Microsoft 365 Tenant und Cloud Only Identities. Es gibt also keine OnPrem Active Directory und Exchange Server mehr, auf welchen noch irgendwelche Scripts für die Automatisierung oder regelmässige Scripts für Exchange Online laufen könnten.
Ich habe mir mal Azure Automation angeschaut und versucht damit ein Script gegen Exchange Online laufen zu lassen.
Als erstes muss man einen Azure Automation Service erstellen
Der Automation Account braucht einen Namen, eine Subscription und eine ResourceGroup
Das erstellen vom RunAsAccount ist fehlgeschlagen (weil ich im AzureAD mit meinem Benutzer keine Rechte habe eine Azure AD Application anzulegen)
Der Automation Account wurde jedoch erstellt und drei Demo Runbooks noch dazu
Der RunAsAccount kann dann erstellt werden, wenn man genügend Rechte im AzureAD hat (Application Administrator müsste da eigentlich genügen. Ich hatte mir jedoch die Global Admin Permissions gegeben).
Schaut man sich nun die Azure AD Applikation an, so braucht die natürlich noch ein paar Rechte um auf Exchange zugreifen zu dürfen
Wie man zur "Exchange.ManageAsApp" Berechtigung kommt, habe ich im folgenden Artikel beschrieben.
Exchange Online PowerShell V2 Authentication with App in AzureAD (Update)
https://blog.icewolf.ch/archive/2021/04/04/exchange-online-powershell-v2-authentication-with-app-in-azuread-update.aspx
Im Privileged Identity Management (PIM) habe ich der App noch die "Exchange Administrator" Rechte permanent verliehen.
Zurück zum Azure Automation Account. Ich schaue mir mal das PowerShell Beispiel genauer an
Mit dem Klick auf "Edit" kommt man zum Quellcode vom Script
Klickt man dann auf die "Test pane"
Kann das Script mit dem "Play" Button ausgeführt werden.
Da ich ja ein PowerShell Script für Exchange Online ausführen will, brauche ich noch das entsprechende PowerShell Module. Dazu wählt man links in der Navigation "Modules" aus, und wählt dann "Browse Gallery".
Dort kann man dann nach dem gewünschten Modul suchen. In meinem Fall "ExchangeOnlineManagement"
Das Modul wird dann importiert
Nun bin ich bereit, mein eigenes Runbook anzulegen
Das Runbook benötigt einen Namen und einen Typ (Programmiersprache)
Ich habe ein kleines Script geschrieben, welche sich über die Azure Application und einem Zertifikat (Wird vom RunAsAccount automatisch erstellt) mit Exchange Online verbindet.
Nun kann das Script gestartet werden. Wie man sieht hat es funktioniert
Zum Schluss muss das Script noch Publiziert werden.