In der Serie PowerShell am Mac hatte ich das letzte Mal eine funktionsfähige PowerShell via brew
installiert und in Betrieb genommen. Es gibt aber auch eine Alternative, die man ins Auge fassen kann: PowerShell mit Docker.
Das Ziel ist es PowerShell in Docker aufzurufen und eine Verbindung in Microsoft 365 zu etablieren.
Apple Silicon User aufgepasst: Stand heute habe ich die PowerShell am M1 nicht zum Laufen gebracht. Sollte sich daran was ändern, werde ich den Post updaten.
Docker am Mac installieren
Wenn Du docker bereits installiert hast, kannst Du einfach schnell und sauber zu diesem Punkt springen. Falls nicht folgst Du einfach weiter dieser Anleitung. Als Hinweis sei noch angemerkt, das ich das Konzept hinter Docker hier nicht erklären werde.
Die Installation ist simpel. Du lädst unter https://docs.docker.com/desktop/install/mac-install/ die passende Version für Deinen Mac (Intel|Apple Silicon) und folgst den Anweisungen. Im Großen und Ganzen ist das:
- Doppelklick Docker.dmg
- Drag & Drop Docker Icon in den Programme-Ordner
- Doppelklick Docker
Die Einstellungen erfolgen über das Wal+Container-Icon in der Menüleiste. Bei der Apple Silicon Version sind noch einige Hinweise zu beachten.
Manövrieren
(Intel) Ausgehend von der abgeschlossenen Docker Installation geht alles eigentlich ganz schnell. Du ziehst und startest das Image mit dem nachfolgenden Befehl:
docker pull mcr.microsoft.com/powershell
docker run -it mcr.microsoft.com/powershell
PowerShellIm Terminal
oder iTerm
ergibt sich dann die Quittung:
Damit sind im Wesentlichen die Vorbereitungen auch schon erledigt. Nächster Schritt ist die Verbindung zu Microsoft 365. Damit installiere, bzw. importiere ich die notwendigen Module. Den Trust musst Du bitte entsprechend Deinen Bedürfnissen und Anforderungen selbst bestimmen.
PS />Install-Module ExchangeOnlineManagement
Untrusted repository
You are installing the modules from an untrusted repository.
If you trust this repository, change its InstallationPolicy
value by running the Set-PSRepository cmdlet. Are you sure
you want to install the modules from 'PSGallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend
[?] Help (default is "N"):A[/shell]
PS />Import-Module ExchangeOnlineManagement
PowerShellUm den Connect zu Exchange Online / Microsoft 365 herzustellen gibt es zwei Möglichkeiten:
- interaktiv
- automatisiert
Interaktiv
Die interaktive Variante öffnet ein Browserfenster in dem die Anmeldeinformationen eingegeben werden müssen. Der passende Befehl an der Kommandozeile
PS />Connect-ExchangeOnline -UserPrincipalName `
user@meintenant.onmicrosoft.com
PowerShellDazu gibt es eine Handvoll Parameter, die Microsoft in seiner Hilfe zur Verfügung stellt.
PS />Get-Help Connect-ExchangeOnline
PowerShellAutomatisiert
Für die automatisierte Variante (Skript), wird zunächst das Passwort in eine Variable gepackt.
PS />$hdPasswd = ConvertTo-SecureString -String `
'HierDasHighDefinitionsPasswort' -AsPlainText `
- Force
PowerShellDie Variable $hdPasswd
wird dann in eine weitere Variable mit Anmelde-Informationen übergeben.
PS />$logMeIn = New-Object System.Management.Automation.PSCredential `
('user@meintenant.onmicrosoft.com', $hdPasswd)
PowerShellSchlußendlich wird die neue Variable $logMeIn
an den Connect Befehl übergeben.
PS />Connect-ExchangeOnline -Credential $logMeIn
PowerShellJetzt beginnt der Zauber an der PowerShell mit den entsprechenden Befehlen die Du absetzen muss. Es gibt ja meistens einen Grund, warum Du Dich mit Microsoft 365 verbinden willst und wolltest. Zum guten Schluss, wenn die Arbeit vollbracht ist meldest Du Dich wieder ab
PS />Disconnect-ExchangeOnline
PowerShellZusammenfassung
Ich habe Dir mit ein paar kurzen Hinweisen gezeigt, wie Du die PowerShell mit Docker installierst und Dich interaktiv oder automatisiert an Microsoft 365 anmeldest. Einmal connected, kannst Du Azure an der Kommandozeile Deinen Willen aufzwängen.