Microsoft 365-Dienste mit PowerShell verbinden

Wenn ich mit der PowerShell irgendwas bei Microsoft 365 machen will, muss ich mich immer erst dorthin verbinden. Das kann nervig sein, hat man mehrere Dienste. Denn dieses „Connect-Service“ muss ich ja mit jedem Service machen. Wenn ich also in meinem Job im Support bei irgendeiner Kundenanfrage mit mehreren Diensten zu schaffen habe, kann das dauern, bis ich soweit bin. Das kann man sich doch vereinfachen. Oder wie seht ihr das?

Die PowerShell mit einem Dienst in Microsoft 365 verbinden

Ich erzähle ja immer, dass das Ding mit der Cloud eigentlich gar nicht so eine doofe Idee ist. Und ich kann die Skepsis nur zum Teil nachvollziehen. Jedenfalls muss man ja in der Administration seines Tenants der ganzen Nummer auch Herr werden können. Das erste Mittel ist hier die PowerShell. Und die muss ich mit meinem Dienst verbinden. Nehmen wir mal Exchange Online. Grundsätzlich muss ich dann gemäß Microsoft so einen Befehl in die PowerShell klopfen:

Connect-ExchangeOnline -UserPrincipalName chris@contoso.com

Das Gleiche dann nochmal für die Teams PowerShell und SharePoint Online und das Azure Active Directory. Ja, oftmals ist es so, dass für jeden Bereich ein gesondertes Team unterwegs ist. Wenn das aber nicht der Fall ist, bist du quasi viermal damit beschäftigt, dich am Tenant anzumelden. Wir haben am Ende alle etwas besseres zu tun. Denn je nach Netzwerk, Internetgeschwindigkeit und – ja, natürlich – Auslastung kann das immer mal dauern.

Ich gehe natürlich davon aus, dass ihr euch jeweils mit „Install-Module“ die richtigen Module für die PowerShell installiert habt. Auch gehe ich davon aus, dass ihr schon mal von PowerShellGet gehört habt. Sonst steht das Alles hier. Jedenfalls habt ihr die Module installiert und müsst euch jedes Mal von vorn mit dem jeweils anderen Dienst verbinden. Ganz ehrlich: Das geht einfacher. Und das habe ich einfach mal ausprobiert.

Mit Exchange Online, Teams, Azure AD und SharePoint verbinden

Ihr denkt vielleicht, dass ich mich nicht so haben soll, denn es sind ja nur vier Dienste in Microsoft 365. Ja, das mag sein. Aber wenn ihr euch einmal etwas vorbereitet, vergesst ihr dann eben auch nichts mehr. Was meint ihr, wie oft es im alltäglichen Wahnsinn im Support dazu kommt, dass man nicht daran denkt, dass das Azure AD auch relevant ist? Deshalb habe ich ein kleines Script, um mich mit allen für mich relevanten Diensten innerhalb unseres Test-Tenants bei Microsoft 365 zu verbinden:

#Setup Credentials
$User = "DEIN USER"
$PWord = ConvertTo-SecureString -String "DEIN PASSWORT" -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord

#Connect EXO
Connect-ExchangeOnline -Credential $Credential

#Connect Teams
Connect-MicrosoftTeams -Credential $Credential

#Connect MSOL
Connect-MSolService -Credential $Credential

#Connect SPO
Connect-SPOService -AuthenticationUrl https://DEINS.sharepoint.com/ -Url https://DEINS.sharepoint.com/ -Credential $Credential

Ich habe jetzt nicht recherchiert, ob das schon mal jemand veröffentlicht hatte. Ich wollte mir einfach nur etwas bauen, um nicht pausenlos etwas anderes auszulassen, wenn ich mich im Tenant anmelde. Am Ende war ich froh, dass ich mir das so schnell basteln konnte. Ich habe halt einfach drauflos gefummelt. Und als es fertig war, erhielt ich beim Anmelden genau die Anzeige, die ihr oben im Bild seht. Ich kann also sagen, dass es funktioniert.

In die Variable $User tragt ihr den Admin-User, den ihr zum Anmelden an der Remote PowerShell nutzt. $PWord sollte das dazugehörige Passwort erhalten. Beides wird dann an die Variable $Credential übergeben, die ich dann für die Verbindung zu Exchange Online, Teams, Azure AD (MSOL) und SharePoint Online verwende. Wenn das Script durchgelaufen ist, solltet ihr an allen vier Diensten angemeldet sein. Ihr könnt dann also gleich losarbeiten. Manchem wird das die Arbeit vereinfachen.

Ich garantiere für nichts

Ja, das Script funktioniert, ich habe es ja tagtäglich für meine Arbeit in Microsoft 365 im Einsatz. Das heißt aber nicht, dass es bei euch funktionieren muss. Irgendwo habe ich die Nummer mit den Variablen her und habe halt einfach drauflos gebastelt. Ich bin kein Programmierer und kann auch mit der Erstellung von Scripten nicht glänzen. Deshalb ist das einfach so ein kleines Spielzeug, das mir die Arbeit vereinfacht.

Die meisten Organisationen werden allerdings auch in Microsoft 365 jeweils Verantwortliche für Exchange, für Teams und so weiter und so fort haben. Wer weiß, vielleicht nutzt das Ding ja niemand. Aber wenn, würde ich mich freuen, wenn ihr mir mal erzählt, wie das Ding bei euch funktioniert. Meiner Meinung nach sollte das einen Fehler werfen, wenn die Anmeldedaten falsch sind. Etwas anderes passiert ja eh nicht. Für mich war es eine kleine Aufgabe, um mit Microsoft 365 besser hantieren zu können.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert