Exchange Online Verbindung per Powershell mit MFA

Wenn man in Office 365 MFA aktiviert hat, funktioniert leider die alte Verbindung zu Exchange Online per Powershell nicht mehr. Aber um das neue EXOModule zu installieren ist leider auch etwas Magie notwendig.
Zuerst muss Powershell-Get installiert werden.
Also eine Powershell mit Adminrechten aufmachen und folgenden Befehl abfeuern: Install-PackageProvider -Name NuGet -Force Damit wird NuGet für Powershell installiert und man sich nun Pakete für Powershell herunterladen und installieren. Unter anderem das vielfach geforderte Install-Module -Name ExchangeOnlineManagement
Danach kann man plötzlich mit Connect-ExchangeOnline -UserPrincipalName deine@mailadresse.de wieder eine Verbindung zur Exchange Online Shell aufbauen. Weil Windows dann vermutlich schon irgendwo deine Logindaten zum Beispiel von Teams hat und damit die Authentifizierung bist Du dann schon automatisch mit der Exchange Online Shell verbunden. Mehr Infos dazu hier.

Und das alles nur um mal DKIM für meine Domain einzurichten.
Dazu hab ich eben New-DkimSigningConfig -DomainName aichele-it-consulting.de -KeySize 2048 -Enabled $true eingegeben und habe damit schon die Schlüssel erstellt. Danach muss natürlich noch der CNAME Eintrag erstellen.
Dieser heißt immer gleich selector1._domainkey und selector2._domainkey als Name und als Wert immer das was diese Abfrage hier ausspuckkt: Get-DkimSigningConfig -Identity aichele-it-consulting.de | Format-List Selector1CNAME, Selector2CNAME Statt aichele-it-consulting.de eben deine eigene Domain eingeben. Hier in dieser Anleitung ist es auch ausführlich beschrieben. Über die GUI kann man nach Veröffentlichen der CNAME Einträge auch eine Aktivierung versuchen. Alternativ über die Powershell mal diese Ausgabe ausprobieren. Wenn bei Get-DkimSigningConfig -Identity aichele-it-consulting.de | Format-List nun bei Enabled ein True dahinter steht ist DKIM aktiviert. Wenn ihr noch ein Gmail Konto habt und eine E-Mail Adresse von eurer gerade mit DKIM aktivierten Office 365 E-Mail eine E-Mail dorthin schickt, könnt ihr auch schön prüfen ob DKIM funktioniert.

Und um DMARC dann auch noch einzurichten ist tatsächlich nicht mehr viel Magie notwendig. Nur ein TXT Eintrag auf der Domain wie hier beschrieben.
Er hört auf _dmarc und hat als Wert beispielsweise sowas: v=DMARC1; p=quarantine;

Und schon hat man auf mxtoolbox auch endlich wieder grünes Licht. Was macht man nicht alles um einen kleinen Beitrag zu leisten und keinen Spam zu verschicken.

Und weil ich das irgendwann sicherlich wieder brauche und mich gerade einen Wolf gesucht habe gibt es diesen Tipp hier mal zum Nachlesen.

Make Me Admin

Es gibt da tatsächlich ein Tool um sich kurzfristig Admin Rechte in Windows zu geben. Man muss dazu zwar schon berechtigt sein sich überhaupt die Admin Rechte geben zu dürfen. Aber ansonsten ein schönes Konzept um standardmäßig mit normalen Rechten zu arbeiten und dann für Installationen sich dann für ein paar Minuten die Adminrechten zu geben und später diese wieder automatisch zu verlieren. Mehr dazu hier.

Powershell in Office 365 (Exchange Online)

Powershell ist tatsächlich mittlerweile eine sehr gute Shell. Zwar doch auch wieder anders als beispielsweise die Bash. Aber dafür ist die Syntax schön einprägsam. Alle Befehle, die irgendwas ausgeben fangen mit "Get-" an und die Befehle zum Setzen mit "Set-". Natürlich kann ich mir ja trotzdem nie merken, wo was hinkommt. Dafür gibt es ja dann wieder das Internet.

Ein paar Standardbefehle sind trotzdem gut. Um sich mit Office 365 zu verbinden muss man aus welchen Gründen auch immer oft Adminrechte nutzen. Aber als Admin weiß man ja eh was man tut. ;)

Folgendes Snippet beispielsweise um entfernte Skripte zu erlauben, die Credentials für Office 365 abzufragen und am Ende sich zu verbinden.
Set-ExecutionPolicy RemoteSigned
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking

Mit folgendem kann man sich mal eine Mailbox Statistik ausgeben lassen (de.aichele ist hier mein Benutzer):
Get-MailboxStatistics de.aichele | Format-List DisplayName,TotalItemSize

Oder auch mal die Speichergrenzen der Mailbox von 50 GB auf einen kleineren Wert setzen (de.aichele ist hier mein Benutzer:
Set-Mailbox -Identity de.aichele -IssueWarningQuota 19.5gb -ProhibitSendQuota 19.75gb -ProhibitSendReceiveQuota 20gb -UseDatabaseQuotaDefaults $false

Oder auch mal um das leidige Winmail.dat Thema (TNEF genannt) zu lösen.

Auch das Anzeigen von Ordnern zu einer bestimmten Mailbox kann hilfreich sein. Beispielsweise wenn nach einer Migration und es fehlt ein Ordner (de.aichele ist hier mein Benutzer).
Get-Mailbox de.aichele | Select-Object alias | foreach-object {Get-MailboxFolderStatistics -Identity $_.alias | select-object Identity}

Die Powershell kann wirklich sehr viel und ist besonders im Zusammenspiel mit Office 365 ein sehr gutes Tool, dass man kennen und beherrschen sollte. Für konkrete Fälle gibt es meistens ja auch wieder das Internet zum Nachschauen.

Netstat - Verbindungen anzeigen

Die Konsole ist gar nicht so schlecht, wenn man weiß wie man sie bedienen muss. Beispielsweise um Verbindungsanfragen zu sehen, wenn etwas nicht funktioniert. Das ist besonders im Firmenumfeld interessant, da hier meistens alles über eine Firewall geregelt ist und viele Ports einfach gesperrt sind.

Der folgende Befehl zeigt beispielsweise an, welche Verbindungen gerade offen sind mit und "WART*" im Status drin haben. Man könnte auch "SYN*" eingeben um sinnvollerweise die Verbindungsversuche zu sehen, die mit hoher Wahrscheinlichkeit fehlschlagen.

netstat -aon | findstr "WART*"

Ohne "| findstr "WART*" findet man natürlich alle Verbindungen.
Möchte man sich die Ausgabe alle Sekunde aktualisieren lassen, hilft folgender Befehl:

netstat -aon 1 | findstr "WART*"

Falls ihr Linux nutzt ist vielleicht das neuere Tool "ss" besser.

WP Twitter Auto Publish Powered By : XYZScripts.com